visual-studio visual-studio-2008 msbuild

visual studio - MSBUILD: error MSB1008: solo se puede especificar un proyecto



visual-studio visual-studio-2008 (12)

¿Por qué recibo el siguiente error de compilación?

C:/WINDOWS/Microsoft.NET/Framework/v3.5/msbuild.exe C:/Code/EduBenesysNET/EduBenesysNET/EduBenesysNET.vbproj /t:publish /p:Configuration=Release /p:Platform=AnyCPU /v:detailed /p:PublishDir="//BSIIS3/c$/DATA/WEBSITES/benesys.net/benesys.net/TotalEducationTest/" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/" /p:ApplicationVersion=1.0.1.198 /p:ProductName="Total Education TEST" /p:PublisherName="BeneSys, Inc." /p:UpdateRequired="True" /p:MinimumRequiredVersion=1.0.1.198 Microsoft (R) Build Engine Version 3.5.30729.1 [Microsoft .NET Framework, Version 2.0.50727.3603] Copyright (C) Microsoft Corporation 2007. All rights reserved. MSBUILD : error MSB1008: Only one project can be specified. Switch: Education For switch syntax, type "MSBuild /help"

No veo cómo se especifica un segundo proyecto.
¿Está almacenado en un archivo de proyecto en alguna parte?


En caso de que alguien tenga el mismo problema que yo, me faltaba "/" antes de uno de los argumentos "/ p". No muy claro a partir de la descripción. Espero que esto ayude a alguien.


En vs2012 simplemente intente crear una definición de Build "Test Build" usando la plantilla TFS predeterminada "DefaultTemplate .... xaml" (generalmente una copia)

Fallará con el error autoexplicativo habitual: "MSBUILD: error MSB1008: solo se puede especificar un proyecto. Cambiar: actividades"

Por supuesto, en algún lugar de la plantilla TFS predeterminada faltan algunos " , por lo que msbuild recibirá como parámetro un directorio no escapado que contiene espacios, por lo que se generarán varios proyectos (?!)

Así que NUNCA uses espacios en tus nombres de definición de compilación TFS, muy tristes y simples al mismo tiempo


Estaba usando comillas simples alrededor del parámetro de contraseña cuando recibí el error

/p:password=''my secret'' malo

y lo cambié para usar comillas dobles para resolver el problema.

/p:password="my secret" bien

Es probable que lo mismo se aplique a cualquier parámetro que necesite citas para valores que contienen un espacio.


Este problema aparece cuando tiene una ruta de acceso o una propiedad que contiene un espacio y que no está citada.

Todas sus propiedades y ruta tienen una cita a su alrededor, es extraño. El mensaje de error indica Education como un interruptor, intente eliminar /p:ProductName="Total Education TEST" para ver si funciona.


Esto funcionó para mí en TFS MSBuild Argument. Tenga en cuenta el número de barras inclinadas.

/ p: DefaultPackageOutputDir = "// Rdevnet / Visual Studio Projects / Insurance /"


Intenta eliminar la barra diagonal inversa o la barra al final de la ruta de publicación e instala la URL

/p:PublishDir="//BSIIS3/c$/DATA/WEBSITES/benesys.net/benesys.net/TotalEducationTest" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest"

Debes haber pulsado una secuencia especial de caracteres con / "y (o) /", pero no sé lo suficiente en cmd.exe para averiguarlo.

Personalmente siempre uso Powershell: ¡es mucho más amigable y poderoso!

¡Espero eso ayude!


Necesitas poner qoutes alrededor de la ruta y el nombre del archivo.
Entonces use MSBuild "C: / Path Name / File Name.Exe" / [Options]


Para futuros lectores.

Recibí este error porque mi archivo LOG especificado tenía un espacio en él:

ANTES DE:

/l:FileLogger,Microsoft.Build.Engine;logfile=c:/Folder With Spaces/My_Log.log

DESPUÉS: (que lo resolvió)

/l:FileLogger,Microsoft.Build.Engine;logfile="c:/Folder With Spaces/My_Log.log"


Para mí, había olvidado agregar una cita de cierre

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)

a

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"


Resulta que la barra inclinada final en la propiedad PublishDir está escapando de la cita final. Escapar de la barra final resolvió mi problema.

/p:PublishDir="//BSIIS3/c$/DATA/WEBSITES/benesys.net/benesys.net/TotalEducationTest//"

De esta forma, podemos usar comillas para las rutas que tienen espacios en blanco en las propiedades que MSBuild requiere de la barra al final.

Sé que esta es una publicación anterior, pero siento que necesitaba compartir esto con alguien :-)


Si usa el espacio de trabajo predeterminado en Jenkins, esto podría ocurrir. Use la ubicación del espacio de trabajo personalizado sin espacios.


SOLUCIÓN
Eliminar las cotizaciones en torno a la configuración / p: PublishDir

es decir
En lugar de citas

/p:PublishDir="//BSIIS3/c$/DATA/WEBSITES/benesys.net/benesys.net/TotalEducationTest/"

No usar citas

/p:PublishDir=//BSIIS3/c$/DATA/WEBSITES/benesys.net/benesys.net/TotalEducationTest/

Lamento no haber publicado mi búsqueda antes. De hecho, tuve que investigar de nuevo para ver qué debía cambiarse. ¿Quién hubiera pensado que eliminar las comillas habría funcionado? Descubrí esto cuando vi una compilación de compañeros de trabajo para otra solución y noté que no tenía comillas.