Visual Studio 2012从命令行发布

时间:2014-01-14 16:41:04

标签: visual-studio visual-studio-2012 msbuild

我正在努力从命令行发布项目。以下是我采取的步骤:

  1. 在中创建了一个全新的ASP.NET MVC 3 (internet) project Visual Studio 2012

  2. 使用发布向导添加了发布File System配置文件并指定了目标目录。

  3. 单击发布成功将应用部署到指定位置。

  4. 添加了第二个发布个人资料,但这次是Web Deploy 轮廓。指定服务器,站点名称,用户名和 我用于remote desktop的帐户的密码 服务器。点击了Validate Connection。它显示一个小“滴答” 图像表示成功。

  5. 单击发布成功将应用程序部署到远程服务器。

  6. 总而言之,当我在Visual Studio中使用发布向导时,我可以使用Web Deploy成功部署到本地文件系统或远程服务器。

    然后我切换到命令行

    msbuild MyMVCProject.csproj /p:DeployOnBuild=true /p:PublishProfile=PublishToFileSystem.pubxml /p:VisualStudioVersion=11.0

    成功部署到本地文件系统。

    然而

    msbuild MyMVCProject.csproj /p:DeployOnBuild=true /p:PublishProfile=BuildServer.pubxml /p:VisualStudioVersion=11.0 /p:AllowUntrustedCertificate=true

    返回以下错误:

    msdeploy error ERROR_USER_UNAUTHORIZED: Web deployment task failed. (Connected to the remote computer ("10.0.1.6") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are connecting to exists, and that the credentials represent a user who has permissions to access the site. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED.)

    错误消息中提到的页面并没有真正帮助我。

    任何人都可以提供帮助,为什么我可以在没有Visual Studio发布向导问题的情况下部署而不是从命令行部署?

1 个答案:

答案 0 :(得分:1)

解决方案结果非常简单。我只需要在命令行中添加/p:Password=<insert password here>作为参数。我在publish向导中提供了密码,但出于安全考虑,这不会存储在.pubxml文件中。

实际上我是从“补充品”中发现的。由SAYED IBRAHIM HASHIMI预订。这本书的标题是Supplement to Inside the Microsoft Build Engine