从VS2010升级到VS2013现在我无法发布

时间:2013-11-15 14:39:03

标签: visual-studio visual-studio-2013 msdeploy

我可以在Visual Studio 2010中发布没有问题但是当我尝试使用Visual Studio 2013发布时,我收到此消息:

  

项目中不存在目标“MSDeployPublish”。 \ Source2 \ Web Projects \ SubService \ subservice \ subservice.csproj 0 0 subservice

有人能告诉我解决这个问题需要做些什么吗?它发生在2个不同的项目中。

3 个答案:

答案 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)

4小时后,我发现了一个与此没有直接关系的帖子,但我盲目拍摄并且有效:

从“Web平台安装程序”安装我安装了“用于.Net的Windows Azure SDK(VS 2013)”并且这样做有效!