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

时间:2009-05-18 18:18:36

标签: visual-studio windows-7 visual-studio-2003

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

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

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

谢谢!

16 个答案:

答案 0 :(得分:14)

如果你无法让它在本机上运行,​​请尝试使用XP模式。

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

答案 1 :(得分:9)

关于这一段时间我写了blog entry,你可以查看 - http://technikhil.wordpress.com/2010/01/12/visual-studio-2003-and-windows-7-can-get-along-really/

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

更新:我通过禁用Aero功能让搜索工作正常 - 我已使用详细信息更新了我的blog post ...

答案 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项目以将该脚本作为预构建事件运行。 (请参阅this thread。)但handle.exe需要以admin身份运行。

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

你可以让VS2003以admin身份运行,在这种情况下,Pre-Build脚本也以admin身份运行,因此执行handle.exe,并且可以正常运行。

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

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

因此,最后一步是让VSLauncher.exe以管理员身份运行。从KB2492386开始,此失败,如this thread所示。卸载该更新是这个传奇的最后一步,让一切顺利。

答案 3 :(得分: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工具解决方法不适用于网络共享上的文件。虽然Handle工具声称它已关闭,但.PDB并未完全解锁。我的解决方案一劳永逸地消除了这个问题,避免了任何副作用。

答案 4 :(得分:4)

运行此安装。您需要从安装目录运行它,cd根目录下的setup.exe将无效。

D:\ setup \ SetUp.exe / NO_BSLN_CHECK

答案 5 :(得分:3)

我在网上找到的解决方案有助于:对于您的visual studio,使用应用程序兼容性= windows vista SP2,而不是WinXP SP3

答案 6 :(得分:2)

对于pdb问题,我有一个非常肮脏和可怜的解决方法。

下载并运行Sysinternals-ProceXP,按CTRL-F输入链接时无法创建的pdb名称(smt like($ ProjectName).pdb)。找到它时双击。(如果找不到管理员权限的procexp)

然后您将看到.pdb文件在主屏幕的下部窗格中突出显示。右键单击它并选择Close Handle。当您重新构建解决方案时,它不会引发错误。

我不知道这个解决方案是否可以编写脚本,但它至少比重启visual studio更好。

答案 7 :(得分:2)

自从第一个RC版本发布以来,我一直在win7上使用Visual Studio 2003:S 为什么人们有问题?

答案 8 :(得分:1)

我尝试使用Virtual Windows XP功能在Windows 7 64位上安装VS2003。我有理由相信这会成功。我遇到的问题是安装程序需要安装IIS,而Virtual XP提供的XP安装默认情况下没有启用。

如果你去添加/删除组件,并尝试添加它,它将要求光盘,我手头没有。一旦我把手放在光盘上,我很确定它能正常运行。

如果您还没有尝试过其他应用,虚拟XP功能真的整洁......

答案 9 :(得分:1)

我遇到了同样的问题; devenv.exe在运行项目后打开pdb文件。我已经制作了一个批处理文件来处理它,它关闭了由devenv.exe打开的所有.pdb 文件:

handle.exe .pdb | awk "/devenv.exe/ { split($4, fd, \":\"); system(\"handle.exe -c \" fd[1] \" -y -p \" $3)}"

你需要在sysinternals中使用handle.exe,在你的路径中使用awk by gnu才能使它工作。

使用风险由您自行承担。关闭句柄可能会导致应用程序或系统不稳定。

答案 10 :(得分:0)

在Windows 7中,可执行属性中存在compatabiliy模式。 打开:C:\ Program Files \ Microsoft Visual Studio .NET 2003 \ Common7 \ IDE \ 然后右键单击devenv.exe并选择属性。在兼容性选项卡中,选择“在兼容模式下运行”,然后在下拉列表中选择“Windows XP”。

尝试一下,我不确定它是否有效,但值得一试。

答案 11 :(得分:0)

我对Windows 7 64位上的Visual Studio 2003没有任何问题。

  1. 导航到VS2003 devenv.exe(可能是C:\ Program Files(x86)\ Microsoft Visual Studio .NET 2003 \ Common7 \ IDE \ devenv.exe)
  2. 右键单击并选择“属性”
  3. 在“兼容性”选项卡中,选中“在兼容模式下运行此程序:”并选择“Windows XP(Service Pack 3)”
  4. 选中“以管理员身份运行此程序”

答案 12 :(得分:0)

通过一些高级步骤,我使用运行Windows 7 Professional 64位的I7处理器和12GB RAM在我的HP EliteBook工作站8760W上运行Visual Studio .NET 2003。 它们如下:

  1. 安装适用于IIS 7.0的FrontPage 2002 Server Extensions。
  2. 安装Visual Studio .Net 2003.只需在安装程序命令您配置Frontpage 2002 Server Extensions时跳过。
  3. 安装.Net Framework 1.1 Service Pack 1(此处下载)。
  4. 转到“控制面板”>管理工具> Internet信息服务(IIS)管理器。突出显示您的计算机,然后双击ISAPI和CGI限制。将ASP .NET v1.1.4322的设置更改为“允许”。
  5. 然后它将始终显示带有以下消息的警报

      

    此程序存在兼容性问题......

    忽略这一点。另外,请勿在IDE的属性中将其置于兼容模式。

答案 13 :(得分:0)

我确实设法在32位Windows 7上安装了VS2003。但是,我必须做一些IIS技巧才能运行我的ASP.NET项目。安装VS2003 Web开发组件时,无法选择。基本上,您必须将VS2003 ASP.NET v1.1放入C:\ inetpub \ wwwroot \ project_name,并使其首先作为独立的Web门户在其自身上运行。这是我所做的步骤。

  1. 在Windows 7上安装IIS

enter image description here

  1. 将VS2003项目复制到C:\ inetpub \ wwwroot \ project_name。右键单击您的project_name并转换为应用程序。 以下是我的自定义问题,即使我的web.config中没有相关设置,也无法启用Windows身份验证。选择您的project_name>身份验证>启用匿名身份验证和Windows身份验证。

enter image description here

  1. 启用ISAPI和CGI限制中的ASP.NET 1.1,并确保将ASP.NET添加到ISAPI筛选器下 enter image description here enter image description here
  2. 一旦我能够在浏览器中启动我的ASP.NET项目,就可以从您的项目位置打开项目,在本例中为C:\ inetpub \ wwwroot \ MHSScoreOrg \ MHSScoreOrg.sln。仅当项目完全集成在IIS上时,我才能运行我的项目。

答案 14 :(得分:-2)

对不起,您的构建环境要求您同时运行VC 2003,2005和2008?我真的敢打赌,只需将您的构建环境整合到一个环境中,您的努力就会更好。

答案 15 :(得分:-2)

您是否考虑过将您的解决方案升级到vs2005,使用MSBEE定位.net 1.1?