有没有人设法在Windows 7上运行Visual Studio 2003?

Jer*_*ite 21 visual-studio-2003 visual-studio windows-7

是的,我知道......我可以设置运行XP的虚拟机.不幸的是,我们的构建环境需要同时运行VC2003,2005和2008,如果我可以在Windows 7上本地运行2003我们需要它的少数项目会更方便.

我意识到IDE中可能没有一些东西可用,但我能够在Windows Vista下运行2003,如果我能在Windows 7下获得相同的基本功能,我会非常高兴.

现在,在切换vc2003以在XP SP 2兼容模式下以管理员身份运行后编译时,打开*.pdb文件时出错.

谢谢!

Way*_*man 14

如果你不能让它本机运行,试试XP Mode.

http://www.microsoft.com/windows/virtual-pc/download.aspx

  • XP模式实际上只是新的运行XP的Virtual PC,还有一些增加的桌面集成,其中来自客户端的窗口直接出现在主机的桌面上,主机FS自动安装在guest虚拟机中.它仍然是一个"VM",就像VMware一样. (2认同)
  • @Jeremy - XP Mode VirtualPC下载的最新版本不再需要硬件虚拟化加入CPU.2010年3月登记册上的故事链接:http://www.channelregister.co.uk/2010/03/22/windows_xp_mode_smbs_hardware_virtualisation/ MS Windows团队博客文章:http://windowsteamblog.com/windows/b/windows7/archive /2010/03/18/windows-xp-mode-now-accessible-to-more-pcs.aspx (2认同)

Nik*_*hil 9

我写了一篇关于这篇文章的博客文章,你可以看看 - http://technikhil.wordpress.com/2010/01/12/visual-studio-2003-and-windows-7-can-get-along-真/

我现在唯一困住的是VS 2003的全局搜索功能 - 它挂起了应用程序.我的解决方法是使用Windows 7搜索:-).除此之外 - 到目前为止一切都很好......

更新:我通过禁用Aero功能使搜索工作正常 - 我已经更新了我的博客帖子,其中包含详细信息......

  • 除了链接您的博客之外,如果您有关于如何解决问题的详细信息会更好. (2认同)

小智 5

(其中大部分重复了上面已经写过的内容.)

我需要在Win7 64位下运行VS2003作为管理员,以支持遗留项目(例如在原始Xbox上运行的项目).旧的XDK需要VS2003,因此升级不是一种选择.我可以运行WinXP,但我更喜欢Win7.

Win7下没有正式支持VS2003,并试图这样做会产生一些相当恼人的问题:

Find-in-files导致VS2003挂起.由于PDB文件句柄泄漏,链接失败.使用"禁用可视主题"解决了"在文件中查找"的问题.导航到VS2003快捷方式("开始" - >"Microsoft Visual Studio .NET 2003"),右键单击以获取上下文菜单,选择"兼容性"选项卡,"设置"窗格,然后选中"禁用可视主题".

当您通过调试器运行程序,停止它,修改文件和构建时,会发生链接器故障(LNK1201).错误是Visual Studio保存PDB文件的句柄,而链接器尝试写入该文件.您可以停止并重新启动VS2003以绕过该问题.工作,但很烦人.

您还可以使用Microsoft SysInternals"handle.exe"实用程序来查找,然后关闭特定文件上进程持有的句柄.编写一个脚本来调用handle.exe并设置VS2003项目以将该脚本作为预构建事件运行.(请参阅此主题.)但handle.exe需要以管理员身份运行.

您可以假设将handle.exe更改为使用常规步骤以管理员身份运行(例如,作为兼容性设置),但随后handle.exe(显然)在嵌套shell中运行,然后stdout文本无法访问调用脚本.

您可以使VS2003以管理员身份运行,在这种情况下,预构建脚本也以管理员身份运行,因此执行handle.exe,这样可行.

剩下的技巧是让VS2003 SLN文件正常打开.如果您只是让VS2003自动以admin身份运行,那么VS版本选择器无法运行VS2003.我不知道为什么,但情况确实如此.

您可以使用VS2003 devenv.exe而不是VSLauncher.exe将SLN文件关联.这可行,但所有新的SLN文件(2005年,2008年,2010年,2012年,...)都无法打开.

因此,最后一步是使VSLauncher.exe以管理员身份运行.如此线程所示,KB2492386中的此操作失败.卸载该更新是这个问题的最后一步,让一切工作正常.


byt*_*ptr 5

现在可用的补丁
经过一些逆向工程后,我发现错误的refcounted COM对象负责泄漏(它被1关闭)并开发了一个稳定的补丁和相应的文章来描述修复.这解决了使用Windows 7到Windows 10时遇到的问题.详情和下载可从以下位置获得:

http://bytepointer.com/articles/vs7.1_2003_on_win7_pdb_handle_leak_bug_unofficial_fix.htm

如果要手动执行修补程序,还会包括这些详细信息.

注意:SysInternals句柄工具变通方法不适用于网络共享上的文件.虽然Handle工具声称它已关闭,但.PDB并未完全解锁.我的修复一劳永逸地消除了这个问题,避免了任何副作用.


Pau*_*ier -2

抱歉,您的构建环境要求同时运行 VC 2003、2005 和 2008?我真的敢打赌,您最好将精力花在将构建环境整合到一个环境上。

  • 显然,你不是为一个决定事情如何完成的客户工作。我同意 - 放弃遗留代码会很好,但目前这不是一个选择。可悲的是,他们最终会意识到,当他们的产品无法在当前可用的操作系统上运行时,他们应该投入时间和金钱来保持最新状态。 (7认同)
  • 我理解你的困境,真的。真的,我只是说,在某些时候,你需要告诉你的客户,事情根本不起作用,按照他们的方式去做比修复它需要更多的时间。通常,客户了解金钱,当你告诉他们修补它所需的时间是修复它所需的时间的 5 倍时,他们就会明白这一点。 (3认同)