一直在尝试构建一个包含许多项目的解决方案,并不断出现重复错误。
我设法使构建部分成功但总是得到如下所示的错误:
C:\ Builds \ 1 \ MBS.Payments.Forms.Mvc \ MBS Payment Forms 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>
请有人可以告知为什么会产生这个错误以及如何解决它。
答案 0 :(得分:15)
检查两个位置:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications 和 C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications
其中任何一个都有.targets文件吗?我个人在两者中都找到了它,但我猜你没有(至少根据错误,它不在v11.0文件夹中)。
您的条件检查 VisualStudioVersion 和 VSToolsPath 属性以查看它们是否缺失,然后设置它们。必须已设置其中一个或两个,或者它将指向v10.0文件夹。
根据http://blogs.msdn.com/b/webdev/archive/2012/08/22/visual-studio-project-compatability-and-visualstudioversion.aspx,这可能是由于在VS2012中打开项目造成的。
要修复,我要么得到.targets的v11副本(我可以看到两者之间有一些变化,也许在你进行设置时没有正确安装?)或者恢复使用v10版本。
答案 1 :(得分:10)
如果使用Visual Studio 2013或更高版本以及TFS 2010,则可以编辑构建定义以包含新的MSBuild参数。
/p:VisualStudioVersion=10.0
答案 2 :(得分:3)
正如CryoFusion87指出的那样,对我有用的解决方案是删除整个<PropertyGroup></PropertyGroup>
标签及其内容。
此标记用于支持VS 2010和VS 2012中的打开项目。请参阅此处的详细信息:http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx
我现在正在使用VS 2013,这不是必需的。
答案 3 :(得分:1)
<PropertyGroup></PropertyGroup>
标记在Visual Studio 2012中打开时添加到项目文件中,我能够在文本编辑器中打开项目文件,删除PropertyGroup并成功构建