具有MSBuild的Web部署不从TeamCity部署

Yaa*_*lis 10 msbuild teamcity msdeploy webdeploy visual-studio-2012

我正在尝试使用MSDeploy使用TeamCity将MVC项目部署到服务器.当我在powershell中的计算机上执行此操作时,使用以下命令:

msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer /p:VisualStudioVersion=11.0
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true
Run Code Online (Sandbox Code Playgroud)

它构建项目并将其部署到服务器(DevServer发布配置文件中定义的信息).输出MSDeployPublish结尾显示了一个部分,其中我看到了文本Starting Web deployment task from source...,然后是行,告诉我哪些文件已更新,等等.

当我在TeamCity上使用MSBuild Build步骤在同一个文件上使用相同的参数(来自同一个工作目录)运行它时,它会构建项目但不会发布它.相反,它具有构建过程(CoreCompile,_CopyFilesMarkedCopyLocal,GetCopyToOutputDirectoryItems,CopyFilesToOutputDirectory)的常规输出,但实际上并没有发布任何内容.

我需要对TeamCity中的设置进行哪些更改才能使其以与从我的计算机上使用MSBuild一样的方式发布部署?

(TeamCity 7.1,MSBuild 4.0,WebDeploy 3.0,Visual Studio 12,IIS 7.与我之前的问题相关)

Joh*_*err 12

我们使用如下配置的TeamCity MSBuild步骤执行WebDeploy:

Build File Path:  Server.csproj

Command Line Parameters:
/p:Configuration=%configuration%
/p:DeployOnBuild=True 
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https://%web.deploy.server%:8172/MsDeploy.axd
/p:DeployIisAppPath=%web.deploy.site% 
/p:AllowUntrustedCertificate=True
/p:Username=
/p:AuthType=NTLM
Run Code Online (Sandbox Code Playgroud)

我们使用集成认证; 根据需要进行更改以适合您的计划.我认为,它的价值在于它从头开始构建所有内容,而不依赖于预先构建的软件包.从你发布的要点我注意到你做了一些数据库发布,我们没有使用WebDeploy,所以我不能在那里提供任何指导.希望这可以帮助.


Rau*_*ess 10

我使用MSBuild.exe打包到zip,并使用MSdeploy.exe在单独的步骤中进行部署.

要在命令行上部署package.zip文件:

"C:\Program Files\IIS\Microsoft Web Deploy V2\msdeploy.exe" -verb:sync 
     -source:package="C:\Build\MyAppName.Debug.zip" 
     -dest:auto,wmsvc=webservername,username=webdeploy,password=******* 
     -allowUntrusted=true
Run Code Online (Sandbox Code Playgroud)

这个命令也值得详细解释:

-verb:sync:使网站从源同步到目标

-source:package ="C:\ Build\MyAppName.Debug.zip":source是一个MSBuild zip文件包

-dest:auto,wmsvc = webservername:使用包文件中的设置部署到服务器.用户帐户是具有权限的操作系统级帐户.指定了主机名,但未指定IIS网站名称(之前在项目属性的MSBuild项目文件中指定).

您可以根据配置修改参数.我喜欢这种方式,因为通过单独的步骤,它更容易调试问题.

使用TeamCity构建步骤和命令行运行器.

更新: 如果您想要一个如何使用MSBuild构建ZIP包的示例,请尝试以下操作:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
MyWebApp/MyWebApp/MyWebApp.csproj
/T:Package
/P:Configuration=Debug;PackageLocation="C:\Build\MyWebApp.Debug.zip"
Run Code Online (Sandbox Code Playgroud)

这应该在您的本地PC和CI服务器上相同.


Yaa*_*lis 5

以下是最终适合我的配置设置:

/p:Configuration=CONFIG-NAME
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=http://SITE-URL/MsDeployAgentService
/p:username="USERNAME"
/p:password=PASSWORD
/p:AllowUntrustedCertificate=True 
/P:CreatePackageOnPublish=True 
/p:DeployIisAppPath=SITE-URL
/p:MSDeployPublishMethod=RemoteAgent
/p:IgnoreDeployManagedRuntimeVersion=True
Run Code Online (Sandbox Code Playgroud)