如何在Win7 x64上修复VS2008和VS2010 dev

时间:2010-10-14 10:08:00

标签: visual-studio-2008 visual-studio-2010 virtualbox windows-7-x64 resgen

好的,我现在处于一个充满痛苦的世界。

我们一直在Win7 x64上使用VS2008(VB.NET,主要是WinForms,还有ASP.NET和Windows服务)进行开发,具有特定要求(我们无法摆脱它们),以x86和框架为目标3.5。

我们最近升级到VS2010,很快就与this ResGen.exe incompatibility issue犯规了。基本上,我们无法使用VS2010编译WinForms应用程序。 Microsoft或其他人建议的解决方法都不适用于我自己或我团队的其他成员。

因此,我们尝试使用here描述的技术(即破解解决方案文件),以及创建全新的VS2008解决方案,并将项目添加到VS2008。这似乎很短暂,但现在我们发现在调试应用程序时,IDE中没有捕获未处理的异常,这使得开发几乎不可能。

使用VS2008(针对x86和.NET 3.5编译)创建的全新测试应用程序不会出现捕获异常的失败。

我现在不得不求助于在主计算机内的Win7(32位)VM上开发VS2010,它确实有效......但它很慢!

任何想出办法的想法都将非常感谢!!

更新

好的,所以这不是一个真正的解决方案,但作为一种解决方法,这不是一场彻底的灾难......

感谢诺亚的评论,这促使我探索各种虚拟化解决方案。我现在发现了(可能是这里的最后一个人!)VirtualBox。它不仅比VMWare Player和Microsoft / Windows Virtual PC的各种版本更加流畅,它还具有无缝模式,其中在VM上运行的应用程序显示为单独的窗口在主持人。所以我现在有一个运行VS2010的x86 guest,编译为x86和Framework 3.5。由于guest虚拟机中没有x64 / x86冲突,因此没有Resgen.exe问题,我的dev envt只是在我的主机桌面上显示为一个窗口。它仍然比本机运行速度慢,但我现在可以忍受它。

仍然会欣赏任何实际的解决方案(或者,如果不是这样,微软的解决方案!!)

2 个答案:

答案 0 :(得分:0)

好吧,我放弃了。

VirtualBox好了一段时间,但虚拟机的速度很慢,而且永远不得不在主机和客户之间管理移动的东西让我发疯。

所以我用Windows 7 x86重建了整台机器。

完全厌恶微软对问题的明显漠不关心,但我想我不是第一个感受到这一点的人。

答案 1 :(得分:0)

你可以通过以下方式制作ResGen.exe 32位:  1. Cd“%ProgramFiles(x86)%\ Microsoft SDKs \ Windows \ v7.0A \ Bin”  2. Corflags / 32Bit + / Force ResGen.exe

在此更改之前保存以前的resgen.exe。

在此更改之后,您需要修改所有项目以告知Resgen以32位管理模式运行

  1. 将Managed32Bit添加到生成针对.NET 3.5的资源的任何项目的项目文件中的PropertyGroup - 由于corflags技巧会影响系统级别上ResGen.exe的位数,因此必须将该属性设置为所有受影响的项目。

  2. 或者如果直接运行MSBuild.exe,则使用全局属性开关传递它:'/ p:ResGenToolArchitecture = Managed32Bit'

  3. 解决方案发布在http://tune-up-pc.com/blog/?p=10790