20

一直在尝试构建一个包含多个项目的解决方案,并且不断出现错误。

我设法使构建部分成功,但总是得到如下所示的错误:

C:\Builds\1\MBS.Payments.Forms.Mvc\MBS 付款表格 MVC\Sources\MBS.Payments.Forms.Mvc\MBS.Forms.Payments.Web\MBS.Forms.Payments.Web.csproj (979) : 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。

我已导航到正在生成错误的文件,其中突出显示了此代码:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"  Condition="'$(VSToolsPath)' != ''" />

目前我已经安装了 Visual Studio 2010 Premium 和 Visual Studio 2012 Ultimate 的评估版,我目前正在 Visual Studio 2010 中开发这个应用程序。

下面是发现错误代码的代码块:

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

请任何人告知为什么会产生此错误以及如何解决它。

4

4 回答 4

15

检查两个位置:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplicationsC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications

其中任何一个都存在 .targets 文件吗?我个人在两者中都找到了它,但我猜你没有(至少根据错误它不在 v11.0 文件夹中)。

您的条件检查VisualStudioVersionVSToolsPath属性以查看它们是否丢失,然后设置它们。必须已经设置其中一项或两项,否则它将指向 v10.0 文件夹。

根据http://blogs.msdn.com/b/webdev/archive/2012/08/22/visual-studio-project-compatability-and-visualstudioversion.aspx,这可能是在VS2012中打开项目造成的。

要解决这个问题,我要么获得 .targets 的 v11 副本(据我所见,两者之间有一些变化,也许在您进行设置时没有正确安装?)或恢复使用 v10 版本.

于 2012-11-20T13:08:58.050 回答
10

如果使用 Visual Studio 2013 或更新版本以及 TFS 2010,您可以编辑构建定义以包含新的 MSBuild 参数。

/p:VisualStudioVersion=10.0

在此处输入图像描述

于 2014-01-30T18:48:17.340 回答
3

正如 CryoFusion87 指出的那样,对我有用的解决方案是删除整个<PropertyGroup></PropertyGroup>标签及其内容。

添加此标签是为了支持从 VS 2010 和 VS 2012 打开项目。在此处查看更多信息:http: //sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx

我现在正在使用 VS 2013,这不是必需的。

于 2013-11-21T03:21:49.750 回答
1

当您在 Visual Studio 2012 中打开该标签时,该<PropertyGroup></PropertyGroup>标签被添加到项目文件中,我能够在文本编辑器中打开项目文件,删除 PropertyGroup 并成功构建

于 2014-08-26T14:02:17.970 回答