0
Posted on 00:27:00 by Unknown and filed under
Visual Studio
使用高版本的 Visual Studio 打开低版本创建的项目(工程、解决方案)文件时,会自动转化到高版本。但这个过程是不可逆的,即高版本创建的项目(解决方案)文件不能在低版本中打开。
因为新的版本会加入很多新的特性,所以项目文件不能向下兼容。如果不得不在低版本中打开高版本创建的项目文件时,可以尝试采用手动修改解决方案文件和项目文件。
对于不同版本的 Visual Studio 生成的项目(解决方案)文件所标记的版本号是不同的,如果强制修改,则可以跳过 Visual Studio 的检查,一般就可以打开了。只是如果使用了新版本的某些特性,则可能出现一些问题。用文本编辑器打开项目(解决方案)文件,你会发现含有如下的版本标记。
Product Name | Product Version | File Format |
Visual Studio .Net |
v7.0
|
7
|
Visual Studio .Net 2003 |
v7.1
|
8
|
Visual Studio 2005 |
v8.0
|
9
|
Visual Studio 2008 |
v9.0
|
10
|
下面示例中标记出来的部分就是需要修改的地方。
解决方案文件(.sln)
Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProjectConverter", "ProjectConverter.vbproj", "{B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}" EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup", "Setup\Setup.vdproj", "{09667F41-0E35-4D40-A0A9-E71BA6740D93}" EndProject Global .... EndGlobal
项目文件(.vbproj, .csproj, .vcproj)
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{B637ACFD-0AFC-4FBB-A8C0-602B5ABA62F0}</ProjectGuid> <OutputType>WinExe</OutputType> <StartupObject>ProjectConverter.My.MyApplication</StartupObject> <RootNamespace>ProjectConverter</RootNamespace> <AssemblyName>ProjectConverter</AssemblyName> <FileAlignment>512</FileAlignment> <MyType>WindowsForms</MyType> <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> <OptionExplicit>On</OptionExplicit> <OptionCompare>Binary</OptionCompare> ... </Project>
一般来说,将这些版本号修改了就可以打开了。准备写本文的时候,搜索到一篇:Visual Studio 2005/2008
Interoperability,还提到了更多可以修改的地方,本文的示例就是我偷懒复制来的,而且还给出了一个小工具,有需要的可以下载试试。
发表评论