【发布时间】:2014-03-26 00:06:25
【问题描述】:
我有一个 Visual Studio 2008 项目,它是一个针对 .NET 3.5 Compact Framework Windows CE 设备的智能设备项目,它当前引用了一个 3.5 类库项目。
我想做的是能够将类库添加到 Visual Studio 2012/2013 解决方案中,而无需“迁移”它。
例如目前的结构是:
- VS2008解决方案
- 智能设备项目
- 类库项目
我想要的是:
- VS2008解决方案
- 智能设备项目
- 类库项目
- VS2013解决方案
- 类库项目
- ASP.NET MVC 项目
这样做的结果是我可以在 VS2008 中处理智能设备项目并将类添加到类库项目中,然后能够打开 VS2013 解决方案文件并使用这些新类。
当我查看 2008 年类项目和 2013 年类项目 csproj 文件之间的区别时,唯一真正不同的是项目元素上的 ToolsVersion (http://msdn.microsoft.com/en-us/library/bcxfsh87.aspx)。 在 VS2008 中,ToolsVersion 是 3.5,但在 VS2013 中是 12.0。
我尝试使用以下工具在 3.5 和 12.0 之间切换 ClassLibraryProject:
<Project ToolsVersion="$(ProjectToolsVersion)">
<Choose>
<When Condition="'$(VisualStudioVersion)' != ''">
<PropertyGroup>
<ProjectToolsVersion>12.0</ProjectToolsVersion>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<ProjectToolsVersion>3.5</ProjectToolsVersion>
</PropertyGroup>
</Otherwise>
</Choose>
<!-- other project stuff -->
</Project>
我可以在VS2013中打开这个很好,但是当我在VS2008中打开它时它说:
Unable to read the project file 'ClassLibraryProject.csproj'.
C:\Test\ClassLibraryPorject.csproj: The tools version "$(ProjectToolsVersion)" is unrecognized.
请注意:我无法将整个项目迁移到 VS2013,因为 VS2013 不支持智能设备项目。
【问题讨论】:
-
您能使用像 2010 这样的旧版本吗?这可能与 '08 或 '13 更兼容。
-
@jamesthollowell,VS2008 是支持智能设备项目的最后一个 VS 版本。 VS2010 及以上都无法支持此类项目。
标签: c# visual-studio visual-studio-2008 visual-studio-2013