【发布时间】:2018-01-08 00:49:30
【问题描述】:
我正在尝试使用 Teamcity 构建、打包和部署 Web 应用程序,但由于某种原因,Teamcity 忽略了我传递给 MsBuild.exe 的属性。
我在构建配置中创建了一个步骤来构建、打包应用程序并将其部署到本地服务器。以下是属性:
/P:Configuration=Release
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:DeployIISAppPath=MyDeployedWebsitePath
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:UserName=Administrator
/P:Password=******
/P:MsDeployServiceUrl=MyServerName
将它们作为命令行参数传递给 MSBuild 步骤或在参数选项卡中将它们声明为系统属性似乎不起作用。 Teamcity 构建应用程序,但忽略了打包和部署步骤!
如果我在同一台服务器(使用相同的参数)上通过命令行执行 MSBuild,则包和部署工作正常。
我正在按照 Troy Hunt 系列中提到的步骤进行操作:https://www.troyhunt.com/you-deploying-it-wrong-teamcity_26/
我已经阅读了很多堆栈溢出问题,并且它似乎对其他人无缝地工作。我不确定出了什么问题。
我非常感谢任何帮助。
更新 - 构建日志
> Step 2/2: Build (MSBuild) (51s)
[18:32:48][Step 2/2] ##teamcity[buildStatisticValue key='buildStageDuration:buildStepRUNNER_18' value='0.0']
[18:32:48][Step 2/2] Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\b12fe165603f4f19 /msbuildPath:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
[18:32:48][Step 2/2] in directory: C:\TeamCity\buildAgent\work\b12fe165603f4f19
[18:32:56][Step 2/2] Targets were not defined in the build configuration.
[18:32:56][Step 2/2] MSBuild command line parameters contain "/property:" or "/p:". It is recommended to define System Property on Build Parameters instead.
[18:33:02][Step 2/2] EnsembleID.Web\EnsembleID.Web.csproj.teamcity: Build target: Build (37s)
[18:33:40][Step 2/2] Process exited with code 0
【问题讨论】:
-
TeamCity 构建日志中的 msbuild 命令行是什么样的?
-
用部分构建日志更新了问题。它只是向我显示了 MsBuild 可执行文件的路径。
-
是的,对不起,我忘记了 TC 日志并没有什么帮助 - 我想它可能会显示属性使用,如果是这样,你可以弄清楚它们是否被正确传递(这意味着有问题在构建本身)或它们是否没有正确传递(这意味着 TC 覆盖了它们或根本不传递它们)。也许编辑项目文件以包含
<Message Text="DeployOnBuild=$(DeployOnBuild)"/>之类的内容,以确定属性是否甚至可以构建?如果将 Configuration 更改为 Debug,它是否有效地构建了 Debug? -
将配置更改为调试确实会在调试模式下构建它。
标签: msbuild teamcity web-deployment webdeploy