本文一直使用的是VS.Net 2005环境。以前也接触了VS2008编译的应用程序,但是当时只需要执行,好像是下了个VS2008distribution包就可以了。没想到,今天来了个VS2008的解决方案,里面有10几个项目。并且必要要打开分析其源代码,可是又没有VS2008环境。当然,在VS2005下是不可能直接能打开VS2008的项目的。再说,咱又不能用盗版的,现在国家抓盗版这么严,连美国都要把咱们国家例如世界盗版观察国了,废话了。
转换步骤:
1. 找到解决方案文件, 即 .sln 文件。在记事本中打开
2. .sln
MicrosoftVisualStudioSolutionFile,FormatVersion10.00
#VisualStudio2008
修改为
MicrosoftVisualStudioSolutionFile,FormatVersion9.00
#VisualStudio2005
.vcproj
<VisualStudioProject ProjectType="Visual C++" Version="9.00" Name="wowmodelview" ProjectGUID="{DCA0C667-2A7A-4FCE-AD02-466F7A380E0C}"RootNamespace="wowmodelview" Keyword="Win32Proj" TargetFrameworkVersion="131072">
开头的这句把9.00改为8.00就可以了。
3.如果解决方案中还有其他的项目的话,打开每个项目的 .vcproj文件,将其中的
Version="9.00"
改成
Version = "8.00"
以上,如果项目不是很复杂,且在VS2008中没有用到一些 新的特征的话,(如果用到了新的特征,需要安装VC2008FeaturePack.exe)。一般来说,整个解决方案就可以正常打开,当然能否编译和链接还不能保证,可能还有一些其他问题。可以做相应的修改。
下面我想就我遇到的一个用了 VS2008特征的所碰到的问题进行说明。
相信在 stdafx.h文件中,大家可能在VS2008中经常会有
#include<afxcontrolbars.h>这一行,这是在VS2008中 Control Bar 新的支持。
光修改上面的版本信息,对这个问题是没用的,仍然不能解决这个问题,因为这是利用了VS2008的新特征,无法在VS2005中解决,除非我们去掉这个特征。
步骤:
1. 把#include<afxcontrolbars.h>注释掉。
2. 在VS2008中,应用程序文件(APP文件)是从 CWinAppEx中继承来的,如下:
class CMyApp : public CWinAppEx
而在VS2005中,都是从CWinApp中继承而来,这说明 .net 在2008版本中对这个类有新的修改和添加。
所以,我们只需要添加如下一行,
#define CWinAppEx CWinApp
仍然使用VS2005中的 CWinApp。
最后是ICO图标,2008的ICO图标不支持,所以从其他2005项目里拷贝一个ICO图标替换。
这样,这个问题就可以解决了。