从VS2010升级到VS2013后无法发布。

3

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

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

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

3个回答

24

就我所知:

我曾遇到同样的问题。刚安装的 Windows 8.1 电脑,只安装了 Visual Studio 2013 (+update1) + Azure SDK's。创建新的 Web Api 项目构建错误 -

"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"导入的项目未找到。请确认声明中的路径正确,并且文件存在于磁盘上。

注意v10.0。这是当未设置MSBuild参数“VisualStudioVersion”时的默认回退。在VS2012之前,目标文件的路径是硬编码的。其他解决此错误的方法说要从 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编译代码并使发布功能再次正常工作。


1
我希望我能为你的这个做法给予超过+1的评价。 - Phil Sandler
是的!我在升级到VS2013时遇到了完全相同的问题,而进行这些更改解决了这个问题。谢谢。 - Dinis Cruz

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" />

解决方案最初发布在这里: MsDeployPublish位于哪里? (在我的情况下已经是MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0 )。


-3

经过4个小时的搜索,我找到了一篇与此不直接相关的帖子,但我冒险尝试了一下,结果奏效:

从“Web平台安装程序”中安装,“Windows Azure SDK for .Net (VS 2013)”这个选项可以解决问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接