visual-studio-2012 - 从TeamCity发布vs2012解决方案

标签 visual-studio-2012 web-deployment teamcity-7.0 msbuild-wpp

我正在使用Visual Studio 2012和发布功能。我创建了一个发布配置文件,将我的应用程序部署到开发服务器上,并且在我的计算机上从vs2012执行时,它的运行效果很好。这是我的问题;在开发服务器上,我还安装了TeamCity,我想在构建完成后触发发布。因此,我创建了一个简单的构建步骤,如下所示:

Build file path: .\src\Solution.sln
Targets: Rebuild
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci


执行此步骤时,出现以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 


Ci配置文件包含一个用户名和密码,当我在计算机上从Visual Studio运行发布时,该用户名和密码会起作用。我还尝试在构建步骤中将用户名和密码作为参数传递,但是得到的结果相同。我需要在管理员帐户下运行TeamCity服务才能正常工作吗?所有建议表示赞赏。

最佳答案

我刚刚在http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx上写过此博客。

您非常亲密,希望我能弥合差距。

没错,在VS发布对话框中指定了用户名和密码,但是我们没有将密码保存在.pubxml文件中。它当前保存在.pubxml.user文件中,并且该文件根本不用于命令行方案。因此,您将需要传递属性。所以你的情况应该是

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password>


如果您的Web服务器没有受信任的证书,则可能还需要传递/p:AllowUntrustedCertificate=true

一点补充可能与您的问题没有直接关系,但可能对其他可能会在以后看到的问题有所帮助。
如果要构建.csproj / .vbproj文件(并且在某些情况下使用.sln文件的情况下),则应传递属性/p:VisualStudioVersion=11.0。有关更多信息,请访问我的博客http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx

关于visual-studio-2012 - 从TeamCity发布vs2012解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250695/

相关文章:

C++ lambda,按值调用成员函数比按引用调用更快

reactjs - TypeError : braintree. 连接不是函数

Teamcity 服务器迁移 - 代理更改

requirejs - 使用 RequireJS 配置文件作为构建文件?

amazon-ec2 - EC2 Linux 实例上的 TeamCIty Server 在启动完成之前就终止了

TeamCity 不发送电子邮件通知

visual-studio-2012 - 源代码控制解决方案中的某些项目没有挂锁图标

visual-studio-2012 - 启动 Visual Studio 时自动打开最后一个解决方案

c++ - 正则表达式查找 mp3 html 文件

java - 如何在 Windows Azure 上部署 Java 应用程序