我使用Visual Studio 2010编写了一个应用程序,我将其配置为使用3.5框架运行。
然后我检查了这个项目,并让一位使用Visual Studio 2008的同事抓住了这个项目。然后,他开始收到错误消息,指出无法找到文件\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets
强调 v10.0 。
首先,当我将其转换为3.5时,为什么要尝试引用2010目录?它不应该在没有安装VS 2010的机器上运行吗?
其次,什么是Microsoft.WebApplication.targets以及我为什么需要它?
答案 0 :(得分:3)
由于未安装V2010的计算机中不存在v10.0(第二个)路径,因此VS2008无法加载项目。
vs 2008 path -
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
vs 2010 path -
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
但如果您想在两个安装中运行它,请执行以下操作 步骤1: 使用Condition属性在V9.0 MSBuild扩展路径之前添加V10.0路径,以根据解决方案版本检查文件。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '10.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
以下是我们不首先指定Visual Studio 2010 MSBuild扩展路径,Visual Studio将尝试升级项目。
步骤2:
项目文件升级后,VS2010会将FileUpgradeFlags标记值更改为0,这将再次触发升级。从标签中删除零。
<FileUpgradeFlags></FileUpgradeFlags>
保存项目文件并重新加载。现在,您将能够在VS2010和VS20中加载项目。 VS2008(即使没有安装VS2010)没有任何问题。
答案 1 :(得分:0)
目标框架是什么并不重要。如果项目是使用VS 2010创建的,则无法在VS 2008中打开。
但是,使用VS 2008创建的项目可以转换为VS 2010格式。
关于第二个错误,您是否安装了VS 2010并安装了“Visual Web Developer”组件?
此文件随该组件一起安装。