TeamCity不会使用MsDeploy发布项目

时间:2013-05-17 14:57:37

标签: msbuild teamcity msdeploy webdeploy msbuild-4.0

我有msbuild命令来发布我的项目(WCF服务应用程序),如下所示:

msbuild FooBar.Service.csproj /p:DeployOnBuild=true;
DeployTarget=MsDeployPublish;
MSDeployServiceUrl=http://server.pl/MSDeployAgentService;
DeployIisAppPath="Foobar";
MSDeployPublishMethod=RemoteAgent;
UserName=Joe;
password=secret;

这适用于VS命令提示符,所有内容都是在没有任何错误的情况下发布的。请注意,我并没有指定任何目标。

但我想使用TeamCity(7.1.5)创建我的部署项目。我做了一个简单的项目,并使用一个Build Step:

进行配置

enter image description here

问题是,当我运行此任务时,msbuild会编译我的网站,但不发布它到远程服务器。以下是构建日志:

[16:13:16]Checking for changes
[16:13:18]Publishing internal artifacts
[16:13:18][Publishing internal artifacts] Sending build.start.properties.gz file
[16:13:18]Clearing temporary directory: C:\TeamCity\buildAgent\temp\buildTmp
[16:13:18]Checkout directory: C:\TeamCity\buildAgent\work\2eecf7b45f277a61
[16:13:18]Repository sources transferred
[16:13:18]Updating sources: server side checkout
[16:13:18]Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\2eecf7b45f277a61 /msbuildPath:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
[16:13:18]in directory: C:\TeamCity\buildAgent\work\2eecf7b45f277a61
[16:13:20]Foobar.csproj.teamcity: Build target: Build
[16:13:20][Foobar.csproj.teamcity] CoreCompile
[16:13:20][CoreCompile] Csc
[16:13:20][Csc] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Configuration.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Drawing.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.EnterpriseServices.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Runtime.Serialization.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ServiceModel.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ServiceModel.Web.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.ApplicationServices.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.DynamicData.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Entity.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Services.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /debug+ /debug:full /optimize- /out:obj\Debug\Foobar.dll /subsystemversion:6.00 /target:library /utf8output Service1.svc.cs IService1.cs Properties\AssemblyInfo.cs "C:\TeamCity\buildAgent\temp\buildTmp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"
[16:13:20][Foobar.csproj.teamcity] CopyFilesToOutputDirectory
[16:13:20][CopyFilesToOutputDirectory] Copy
[16:13:20][Copy] Copying file from "obj\Debug\Foobar.dll" to "bin\Foobar.dll".
[16:13:20][CopyFilesToOutputDirectory] Foobar.csproj -> C:\TeamCity\buildAgent\work\2eecf7b45f277a61\bin\Foobar.dll
[16:13:20][CopyFilesToOutputDirectory] Copy
[16:13:20][Copy] Copying file from "obj\Debug\Foobar.pdb" to "bin\Foobar.pdb".
[16:13:19]Targets was not defined in the build configuration.
[16:13:19]MSBuild command line parameters contain "/property:" or "/p:". It is recommended to define System Property on Build Parameters instead.
[16:13:21]Process exited with code 0
[16:13:21]Publishing internal artifacts
[16:13:21][Publishing internal artifacts] Sending build.finish.properties.gz file
[16:13:21]Publishing artifacts
[16:13:21][Publishing artifacts] Collecting files to publish: [C:\TeamCity\buildAgent\work\2eecf7b45f277a61]
[16:13:21][Publishing artifacts] Sending
[16:13:21]Build finished

3 个答案:

答案 0 :(得分:0)

我没有仔细研究过这个问题但注意到在命令行示例中你指的是DeployIisAppPath,但看起来你在TeamCity脚本中使用了DeployAppPath,这将是我想,只是被MSBuild忽略了。

答案 1 :(得分:0)

对visual studio 2013项目有同样的问题。另一种配置只是构建和部署精细

答案 2 :(得分:0)

值得注意的是,您收到以下警告:

MSBuild command line parameters contain "/property:" or "/p:".
It is recommended to define System Property on Build Parameters instead.

它的含义是将大量参数传递给基于命令行的执行的最佳做法是将参数定义为系统属性,而不是在一个长字符串中显式连接它们。

作为重构的建议,我建议您将通过/ p:前缀的参数定义为系统属性(这可以在Build Configuration的Build Parameters部分完成)。在这种情况下,它们将被传递给幕后执行,并将帮助您避免重复,易于维护等等。它还可以使参数列表更加清晰,并帮助您找出传递给MSBuild的参数是否有问题,这可能会导致问题。