Teamcity MsDeployPublish位于哪里?

Teamcity MsDeployPublish位于哪里?,teamcity,webdeploy,build-server,Teamcity,Webdeploy,Build Server,尝试使用TeamCity和Web deploy部署我的站点时,出现以下错误: error MSB4057: The target "MsDeployPublish" does not exist in the project. 是否有我必须在构建服务器上安装的东西?这是一款干净的Windows Server 2012,安装了Web Deploy 3.5。我意识到这个问题已经很老了,但是: MsDeployPublish与Web应用程序目标一起安装,作为Visual Studio的一部分。如果您

尝试使用TeamCity和Web deploy部署我的站点时,出现以下错误:

error MSB4057: The target "MsDeployPublish" does not exist in the project.

是否有我必须在构建服务器上安装的东西?这是一款干净的Windows Server 2012,安装了Web Deploy 3.5。

我意识到这个问题已经很老了,但是:

MsDeployPublish
与Web应用程序目标一起安装,作为Visual Studio的一部分。如果您只安装了Server+WebDeploy,则需要从开发人员安装中复制它们,或者安装VisualStudio。可以从
%programfiles(x86)%\MSBuild\Microsoft\VisualStudio


另外,Visual Studio 2012发布后添加了一些功能,即与发布配置文件相关的功能(
.pubxml
)。这些可以通过安装Azure SDK添加到VS2010中,并将安装到
%programfiles(x86)%\MSBuild\Microsoft\VisualStudio\v10.5\Web

,或者您可以将此NuGet软件包与目标的可移植版本一起使用:并修改您的csproj文件以将其包括在内,如下所示:

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />

这对我来说很有效,我必须添加行以导入Microsoft.WebApplication.targets 这是从一个好的VS2013项目中得到的

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />


如果您不想安装Visual Studio,这是TeamCity在构建服务器上的最佳解决方案。需要注意的几件事-确保路径引用与您安装的Web.targets版本匹配,并确保上面的导入行替换了Microsoft.WebApplication.targets的任何其他导入引用(它们可能在Web.config文件的更下方),否则您将得到“exists”函数只接受标量值编译错误。@Raelshark的评论:我不确定我是否幸运,它是否匹配,但通过添加nuget包,它对我有效。在将我的文件夹
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14`复制到代理服务器之前,nuget包括14.0.0.3和其他一些步骤。这又与构建配置中的
ToolsVersion`相匹配。Teamcity及其文档…:(这解决了我的问题。我只在工作站上安装了服务器版本的WebDeploy。为了正确构建,我需要安装完整版本的WebDeploy。