我可以在Visual Studio 2010中发布没有问题但是当我尝试使用Visual Studio 2013发布时,我收到此消息:
项目中不存在目标“MSDeployPublish”。 \ Source2 \ Web Projects \ SubService \ subservice \ subservice.csproj 0 0 subservice
有人能告诉我解决这个问题需要做些什么吗?它发生在2个不同的项目中。
答案 0 :(得分:24)
它的价值;
我有同样的问题。 Fresly安装了Windows 8.1机器,只安装了Visual Studio 2013(+ update1)+ Azure SDK。创建新的Web Api项目繁荣构建错误 -
导入的项目“C:\ Program Files (86)\的MSBuild \微软\ VisualStudio的\ V10.0 \ web应用\ Microsoft.WebApplication.targets” 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。
请注意v10.0。当没有设置MSBuild参数“VisualStudioVersion”时,这是默认的回退。 Prior to VS2012 the paths to the target files被硬编码。针对此错误的其他解决方案说to remove the following from your csproj是为了向后兼容而添加的:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
但是删除它会修复您的构建,但会破坏发布功能并显示原始海报错误:
项目中不存在目标“MSDeployPublish”
注意:我已从Web平台安装程序安装了所有与Azure相关的SDK部件。
我已经将上述XML部分重新添加到我的csproj文件中,但将 10.0 部分更改为 12.0 (= vs2013)
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
这可能会破坏向后兼容性,但最终使我的Visual Studio 2013编译代码&amp;使发布功能再次发挥作用。
答案 1 :(得分:1)
如果您不想在构建服务器上安装visual studio,可以将此NuGet包与可移植版本的目标一起使用:https://www.nuget.org/packages/MSBuild.Microsoft.VisualStudio.Web.targets并修改您的csproj文件以包含它:
<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
最初发布在此处的解决方案:Where is MsDeployPublish located? (就我而言,它已经是MSBuild.Microsoft.VisualStudio.Web.targets。 14.0.0 )。
答案 2 :(得分:-3)
从“Web平台安装程序”安装我安装了“用于.Net的Windows Azure SDK(VS 2013)”并且这样做有效!