在64位的Windows 7下,用VS2010编译4.0以前的.Net项目会有问题。原因是一个叫Resgen.exe是跑在64位环境下的,当他试图加载32位的可执行代码时,就会执行失败:
解决方法
1. 关闭Visual Studio。
2. 打开黑屏切换到ResGen.exe的目录中,如"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ResGen.exe"
3. 执行命令:
corflags /32bit+ ResGen.exe /force,这一步有时会出现警告信息
4. 回到项目所在目录,用记事本打开<项目名>.csproj 文件
5. 添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>这个属性在PropertyGroup下面: 然后保存文件。
再次尝试编译,一切OK!
解决方法
1. 关闭Visual Studio。
2. 打开黑屏切换到ResGen.exe的目录中,如"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ResGen.exe"
3. 执行命令:
corflags /32bit+ ResGen.exe /force,这一步有时会出现警告信息
4. 回到项目所在目录,用记事本打开<项目名>.csproj 文件
5. 添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>这个属性在PropertyGroup下面: 然后保存文件。
再次尝试编译,一切OK!
本文介绍了解决64位Windows7环境下使用VS2010编译4.0之前的.NET项目时遇到的问题。通过修改ResGen.exe的配置及项目文件设置,确保32位代码能在64位系统上正确编译。
205

被折叠的 条评论
为什么被折叠?



