¿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: detallado / 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 =" TEST de educación total "/ p: PublisherName =" BeneSys, Inc. " / p: UpdateRequired = "True" /p:MinimumRequiredVersion=1.0.1.198 Versión 3.5.30729.1 del motor de compilación de Microsoft (R) [Microsoft .NET Framework, versión 2.0.50727.3603] Copyright (C) Microsoft Corporation 2007. Todos los derechos reservados. MSBUILD: error MSB1008: solo se puede especificar un proyecto. Switch: Educación Para cambiar la sintaxis, escriba "MSBuild / help"
No veo cómo se está concretando un segundo proyecto.
¿Está almacenado en un archivo de proyecto en algún lugar?
visual-studio
visual-studio-2008
msbuild
Gerhard Weiss
fuente
fuente
Respuestas:
Resulta que la barra inclinada final en la propiedad PublishDir se escapa de la comilla final. Escapar de la barra inclinada resolvió mi problema.
De esta manera, podemos usar comillas para rutas que tienen espacios en blanco en las propiedades que MSBuild requiere la barra final.
Sé que esta es una publicación antigua, pero siento que necesitaba compartir esto con alguien :-)
fuente
SOLUCIÓN
Eliminar las cotizaciones alrededor de la configuración / p: PublishDir
es decir, en
lugar de comillas
No use comillas
Lamento no haber publicado mi hallazgo antes. De hecho, tuve que investigar de nuevo para ver qué era necesario cambiar. ¿Quién hubiera pensado que eliminar las comillas funcionaría? Descubrí esto al ver la compilación de un compañero de trabajo para otra solución y noté que no tenía comillas.
fuente
En Git Bash tuve que especificar los parámetros con barras dobles como:
fuente
Este problema aparece cuando tiene una ruta o una propiedad que contiene un espacio y que no está citada.
Todas tus propiedades y tu ruta tienen citas a su alrededor, es extraño. El mensaje de error indica
Education
como un interruptor, intente quitarlo/p:ProductName="Total Education TEST"
para ver si funciona.fuente
MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC
. Me da un errorMSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New
. ¿Cuál podría ser el problema?Default WebSite/New
Debe poner qoutes alrededor de la ruta y el nombre del archivo.
Entonces use MSBuild "C: \ Nombre de ruta \ Nombre de archivo.Exe" / [Opciones]
fuente
Intente eliminar la barra diagonal inversa o la barra inclinada al final de su ruta de publicación e instale la URL
Debes haber marcado 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!
fuente
En vs2012 simplemente intente crear una definición de compilación "Prueba de compilación" utilizando la plantilla TFS predeterminada "DefaultTemplate .... xaml" (generalmente una copia de la misma)
Fallará con el habitual error autoexplicativo: "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 sin escape que contiene espacios, por lo que resultará en múltiples proyectos (?!)Así que NUNCA use espacios en sus nombres de definición de compilación TFS, bastante tristes y simples al mismo tiempo
fuente
Estaba usando comillas simples alrededor del parámetro de contraseña cuando recibí el error
/p:password='my secret'
maloy lo cambió para usar comillas dobles para resolver el problema.
/p:password="my secret"
buenoProbablemente lo mismo se aplicaría a cualquier parámetro que necesite comillas para valores que contengan un espacio.
fuente
Para mí, me había olvidado de agregar una cita de cierre.
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)
a
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"
fuente
Para futuros lectores.
Recibí este error porque mi archivo LOG especificado tenía un espacio en él:
ANTES DE:
DESPUÉS: (que lo resolvió)
fuente
Sin embargo, otra causa y solución a esto: Compruebe que no puso un espacio en el lugar incorrecto, es decir, en los parámetros; el mío era
dotnet -c Release - o /home/some/path
(fíjate en el espacio entre-
yo
), seguí mirando el camino en sí, que era correcto y me despistaba. ¡Espero que ayude! (esto estaba en Bash, aunque también debería aplicarse a Windows)fuente
Esto funcionó para mí en TFS MSBuild Argument. Tenga en cuenta el número de barras.
/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Proyectos de Visual Studio \ Seguros \"
fuente
Si usa el espacio de trabajo predeterminado en Jenkins, esto podría ocurrir. Utilice la ubicación del espacio de trabajo personalizado sin espacios.
fuente
Si está utilizando la
MSBuild
tarea de Azure DevOps , el error puede deberse a una marca de configuración duplicada. Asegúrese de colocar el$(BuildConfiguration)
cuadro especificado en lugar de los argumentos uno de MSBuild:fuente
Si lo está utilizando,
Any CPU
es posible que deba ponerlo entre comillas simples.Ciertamente, al ejecutar en un Dockerfile, tuve que usar comillas simples:
fuente
En caso de que alguien tenga el mismo problema que yo, me faltaba "/" antes de uno de los argumentos "/ p". No muy claro por la descripción. Espero que esto ayude a alguien.
fuente
Usé la solución dada en https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html y eso resuelve el problema. Todo lo que tenemos que hacer es marcar los espacios y '' (marcar las barras invertidas) en el comando
fuente