Visual studio 2012 从TeamCity发布vs2012解决方案

Visual studio 2012 从TeamCity发布vs2012解决方案,visual-studio-2012,web-deployment,teamcity-7.0,msbuild-wpp,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;

我正在使用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服务才能正常工作?非常感谢您的所有建议。

我刚刚在博客上发表了这方面的文章

你很接近,希望我能缩小差距

在VS publish对话框中指定用户名和密码是正确的,但我们不会将密码保存在.pubxml文件中。它当前保存在.pubxml.user文件中,该文件根本不用于命令行方案。因此,您需要传入该属性。所以你的情况应该是这样的

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password>
msbuild。\src\solution.sln/p:DeployOnBuild=true/p:PublishProfile=ci/p:Password=
如果您的web服务器没有可信证书,您可能还需要传入
/p:AllowUntrustedCertificate=true

一点补充可能与您的问题没有直接关系,但可能对以后可能看到这一点的其他人有所帮助。 如果要生成.csproj/.vbproj文件(可能在使用.sln文件的某些情况下),则应传入属性
/p:VisualStudioVersion=11.0
。更多信息可在我的博客上找到