Por que estou recebendo o seguinte erro de compilação?
C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t: publicar / p: Configuração = Versão / p: Plataforma = AnyCPU / v: detalhado / 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 Versão 3.5.30729.1 [Microsoft .NET Framework, Versão 2.0.50727.3603] Copyright (C) Microsoft Corporation 2007. Todos os direitos reservados. MSBUILD: erro MSB1008: Apenas um projeto pode ser especificado. Switch: Educação Para a sintaxe do switch, digite "MSBuild / help"
Não vejo como um segundo projeto está sendo especificado.
Ele está armazenado em um arquivo de projeto em algum lugar?
visual-studio
visual-studio-2008
msbuild
Gerhard Weiss
fonte
fonte
Respostas:
Acontece que a barra final na propriedade PublishDir está escapando da citação final. Escapar da barra final resolveu meu problema.
Dessa forma, podemos usar aspas para caminhos que possuem espaços em branco nas propriedades que o MSBuild exige a barra final.
Eu sei que esta é uma postagem antiga, mas sinto que precisava compartilhar isso com alguém :-)
fonte
SOLUÇÃO
Remova as cotações em torno da configuração / p: PublishDir
ou seja, em
vez de aspas
Não use aspas
Lamento não ter postado minha descoberta antes. Na verdade, tive que pesquisar novamente para ver o que precisava ser mudado. Quem teria pensado que remover aspas teria funcionado? Eu descobri isso ao ver a construção de um colega de trabalho para outra solução e percebi que não havia aspas.
fonte
No Git Bash, tive que especificar os parâmetros com barras duplas como:
fonte
Esse problema aparece quando você tem um caminho ou uma propriedade que contém um espaço e que não está entre aspas.
Todas as suas propriedades e caminhos têm citações em torno deles, é estranho. A mensagem de erro indica
Education
como um switch, tente remover/p:ProductName="Total Education TEST"
para ver se funciona.fonte
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
. Isso me dá um erroMSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New
. Qual pode ser o problema?Default WebSite/New
Você precisa colocar qoutes em torno do caminho e nome do arquivo.
Portanto, use MSBuild "C: \ Path Name \ File Name.Exe" / [Options]
fonte
Tente remover a barra invertida ou barra no final de seu caminho de publicação e url de instalação
Você deve ter atingido uma sequência especial de caracteres com o \ "e (ou) /", mas não sei o suficiente em cmd.exe para descobrir.
Eu pessoalmente sempre uso o Powershell: é muito mais amigável e poderoso!
Espero que ajude!
fonte
No vs2012 apenas tente criar uma definição de Build "Test Build" usando o modelo TFS padrão "DefaultTemplate .... xaml" (geralmente uma cópia dele)
Ele irá falhar com o erro autoexplicativo usual: "MSBUILD: erro MSB1008: Apenas um projeto pode ser especificado. Trocar: Atividades"
Claro, em algum lugar do modelo TFS padrão, alguns
"
estão faltando, então msbuild receberá como parâmetro um diretório sem escape contendo espaços, resultando em vários projetos (?!)Portanto, NUNCA use espaços em seus nomes de definição de compilação do TFS, muito tristes e simples ao mesmo tempo
fonte
Eu estava usando aspas simples no parâmetro de senha quando recebi o erro
/p:password='my secret'
ruime alterei-o para usar aspas duplas para resolver o problema.
/p:password="my secret"
BoaProvavelmente, o mesmo se aplica a qualquer parâmetro que precise de aspas para valores que contêm um espaço.
fonte
Para mim eu tinha esquecido de adicionar a cotação de fechamento
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)
para
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"
fonte
Para futuros leitores.
Recebi este erro porque meu arquivo de LOG especificado tinha um espaço:
ANTES:
DEPOIS: (que resolveu)
fonte
Mais uma causa e solução para isso: Verifique se você não colocou um espaço no lugar errado, ou seja, nos parâmetros; o meu era
dotnet -c Release - o /home/some/path
(observe o espaço entre-
eo
), continuei olhando para o próprio caminho, que estava correto e me jogou fora. Espero que ajude! (isso estava no Bash, embora também deva se aplicar ao Windows)fonte
Isso funcionou para mim no TFS MSBuild Argument. Observe o número de barras.
/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Visual Studio Projects \ Insurance \"
fonte
Se você usar o espaço de trabalho padrão no Jenkins, isso pode ocorrer. Use a localização do espaço de trabalho personalizado sem nenhum espaço.
fonte
Se você estiver usando a
MSBuild
tarefa do Azure DevOps , o erro pode ser causado por sinalizador de configuração duplicado. Certifique-se de colocar$(BuildConfiguration)
na caixa especificada em vez de Argumentos do MSBuild um:fonte
Se você estiver usando,
Any CPU
pode ser necessário colocá-lo entre aspas simples.Certamente, ao executar em um Dockerfile, tive que usar aspas simples:
fonte
Apenas no caso de alguém ter o mesmo problema que eu, faltava "/" antes de um dos argumentos "/ p". Não é muito claro na descrição. Espero que isso ajude alguém.
fonte
Eu usei a solução fornecida em https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html e isso resolve o problema. Tudo o que precisamos fazer é verificar os espaços e '' (verificar as barras invertidas) no comando
fonte