问题
When trying to deploy my site using TeamCity and Web Deploy I get this error:
error MSB4057: The target "MsDeployPublish" does not exist in the project.
Is there something I have to install on a build server? It's a clean Windows Server 2012 with Web Deploy 3.5 installed.
回答1:
I realise this question is quite old at this point, but:
MsDeployPublish
is installed with the Web Application targets as part of Visual Studio. If you have only installed Server + Web Deploy, you'll need to either copy them from your developer installation or install Visual Studio. The targets can be copied from %programfiles(x86)%\MSBuild\Microsoft\VisualStudio
As an aside, there are some features that were added after the release of Visual Studio 2012, namely those that relate to Publishing Profiles (.pubxml
). Those can be added to VS2010 by installing the Azure SDK and will be installed to %programfiles(x86)%\MSBuild\Microsoft\VisualStudio\v10.5\Web
回答2:
Or you can use this NuGet package with portable version of the targets: https://www.nuget.org/packages/MSBuild.Microsoft.VisualStudio.Web.targets and modify your csproj file to include it like this:
<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
回答3:
This worked for me, i had to add the line to import Microsoft.WebApplication.targets Got that from a good VS2013 project.
<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" />
来源:https://stackoverflow.com/questions/19295854/where-is-msdeploypublish-located