Visual studio MS Deploy任务失败DeploymentBaseOptions不包含UserAgent的定义 我在使用一个带有构建参数的Sound-Foundation 2013构建过程中遇到困难,并且我得到了一个错误:

Visual studio MS Deploy任务失败DeploymentBaseOptions不包含UserAgent的定义 我在使用一个带有构建参数的Sound-Foundation 2013构建过程中遇到困难,并且我得到了一个错误:,visual-studio,msbuild,tfsbuild,msdeploy,Visual Studio,Msbuild,Tfsbuild,Msdeploy,C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4255):Web部署任务失败。(“Microsoft.Web.Deployment.DeploymentBaseOptions”不包含“UserAgent”的定义) 开发工作在2013年完成 奇怪的是,如果我将MSBuild文件夹*..\v11.0\Web*复制到*v12.0\Web* 构建可以工作并执行

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4255):Web部署任务失败。(“Microsoft.Web.Deployment.DeploymentBaseOptions”不包含“UserAgent”的定义)

开发工作在2013年完成

奇怪的是,如果我将MSBuild文件夹*..\v11.0\Web*复制到*v12.0\Web* 构建可以工作并执行部署

我已经检查了v12.0\Web\Microsoft.Web.Publishing.targets文件,其中有一个UserAgent条目,而在v11.0\Web\Microsoft.Web.Publishing.targets中没有条目

我可以在我的计算机上使用VS publish很好地发布,但在构建服务器上它失败了
有人成功地使用MSBuild VS 2013目标构建和部署了吗?

我也遇到了同样的问题。对我来说,解决方案是安装WebDeploy3.5()。之后,错误消失了。

我将于2019年10月发布此消息。在这篇文章发表6年后,错误仍然存在,但这次是VS2019。在浏览web并在重新安装Deploy 3.5/3.6和更新VS后仍无法修复它之后,我最终通过查看MSBuild设置来修复它。想在这里分享,因为这是谷歌的顶级搜索结果

步骤: 在VS 2019上创建了一个简单的命令提示符应用程序。右键单击解决方案资源管理器中的项目,单击“发布为Azure Webjob…”,并在随后的对话框中进行我的Azure设置

预期结果: 这个简单的控制台应用程序将作为WebJob发布到Azure,就像在VS2017上一样

实际结果: 发布操作失败,出现以下消息:

Error : Web deployment task failed. ('Microsoft.Web.Deployment.DeploymentBaseOptions' does not contain a definition for 'UserAgent') Publish failed to deploy.
调查: Visual Studio中输出窗格中的错误行指向“C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Web”下的文件Microsoft.Web.Publishing.targets。双击此错误行将在显示部分
的位置打开文件。在本节中,
UserAgent
属性设置为“$(\u MSDeployUserAgent)”
\u MSDeployUserAgent
依次在
下设置为
VS$(\u MSDeployUserAgentSource)
。整个PropertyGroup部分粘贴在下面以供参考:

<!-- UserAgent string sent to msdeploy -->
<PropertyGroup>
    <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' != 'true'">$(VisualStudioVersion):CmdLine</_MSDeployUserAgentSource>
    <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' == 'true'">$(VisualStudioVersion):PublishDialog</_MSDeployUserAgentSource>
    <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)</_MSDeployUserAgent>
</PropertyGroup>

$(VisualStudioVersion):CmdLine
$(VisualStudioVersion):PublishDialog
VS$(\u MSDeployUserAgentSource)
修复方法: 在
元素中更改
UserAgent=“$(\u MSDeployUserAgent)”
UserAgent=“VS$(\u MSDeployUserAgentSource)”
修复了该问题,并且该WebJob已成功发布到我的应用程序服务

警告:修改此文件时请格外小心,因为不正确的更改将对VS内和命令提示符下的所有生成命令产生不利影响。)

结论性意见:
在将此更改为Microsoft.Web.Publishing.targets之后,VS似乎继续使用类似于命令行生成的UserAgent设置,而没有将其与PublicDialog生成区分开来。所有与发布相关的输出行都显示在输出窗格中,就像在VS 2017中一样,一切都很顺利。

这解决了我们TFS构建服务器上的问题,谢谢!这对我不起作用。不知道这对你有什么作用。尝试此修复后,我仍然会出现错误。