Что я могу делать не так с моим аргументом msbuild? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть аргумент msbuild

/t:Project.HQ.Web /p:DeployOnBuild=true /p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\"

в моем конвейере компоновки DevOps Azure для сборки решений.

Я получаю сообщение об ошибке

Работа агента1: «Code \ AnotherMutliProjSolution.sln (0,0): ошибка MSB4014: сборка неожиданно остановлена ​​из-за внутренней ошибки. System.ArgumentException: имя« Project.HQ.Web »содержит недопустимый символ«. ». В Microsoft.Build.Shared.) в Microsoft.Build.Execution.ProjectTargetInstance.ToProjectTargetElement (ProjectRootElement rootElement) в Microsoft.Build.Execution.ProjectInstance.ToProjectRootElement () в Microsoft.Build.Construction.SolutionProjectGenerator.CrapatetToolsVersionSpecified) в Microsoft.Build.Construction.SolutionProjectGenerator.Generate () в Microsoft.Build.Execution.ProjectInstance.GenerateSolutionWrapper (строковый projectFile, IDictionary 2 globalProperties, String toolsVersion, ILoggingService loggingService, BuildEventContext projectBuildEventContext, IReadOnlyCollection 1 targetNames, ISdkResolverService sdkResolverSiWidSecision.SuccessInject.ExidisionInject.SecidSec.LoadSolutionForBuild (String projectFile, PropertyDictionary 1 globalPropertiesInstances, String toolsVersion, BuildParameters buildParameters, ILoggingService loggingService, BuildEventContext projectBuildEventContext, Boolean isExplicitlyLoaded, IReadOnlyCollection 1 targetNames, ISdkResolverService sdkResolverService, Int32 submissionId) в Microsoft.Build.Execution.блокировщик) в Microsoft.Build.Execution.BuildManager.IssueRequestToScheduler (отправка BuildSubmission, логическое значение allowMainThreadBuild, блокировщик BuildRequestBlocker)"Project.HQ.Web".Я все еще сталкиваюсь с теми же проблемами.

Ответы [ 3 ]

2 голосов
/ 22 мая 2019

Из документации , /t используется для построения цели проекта.Для самого проекта нет переключателя.

Вы должны использовать в качестве командной строки:

msbuild.exe /p:DeployOnBuild=true /p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.artifactstagingdirectory)\\" "Project.HQ.Web"
1 голос
/ 22 мая 2019

Вам нужно заменить . на подчеркивания, чтобы сгенерировать сгенерированные цели решения:

msbuild /t:Project_HQ_Web

См. Следующую часть Как: создавать конкретные цели в решениях с помощью MSBuild.exe

Укажите цель после переключателя -target: в формате <ProjectName>:<TargetName>.Если имя проекта содержит какие-либо символы%, $, @,;,., (,) Или ', замените их символом _ в указанном имени цели.

0 голосов
/ 23 мая 2019

Я наконец понял это. То, что я сделал, было вместо того, чтобы построить решение, Я собрал сам файл csproj, передавая аргумент msbuild

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=$(build.stagingDirectory)\\ProjectHQWeb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...