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

Posted

技术标签:

【中文标题】有没有人设法让 Visual Studio 2003 在 Windows 7 上运行?【英文标题】:Has anyone managed to get Visual Studio 2003 running on Windows 7? 【发布时间】:2010-10-27 02:48:46 【问题描述】:

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

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

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

谢谢!

【问题讨论】:

我知道 Visual Studio 2005 与 Windows Vista 有一些问题,所以我知道 2003 会有更多问题。 听起来真正的问题是你的开发环境:O 是的,我确信他意识到环境是一个问题,但并不是每个人都可以“升级或重新定位”。由于公司繁文缛节,一些遗留应用程序无法升级到新版本,因此我也必须运行 VS2003。 @womp:或者底层操作系统。 VS 2003 既不受 Vista 支持,也不受 Windows 7 支持。因此,如果它对我的构建过程至关重要,我将始终使用 XP/2003,以免因意外问题而浪费时间。 我们公司也有类似的问题。我们已将大部分活动项目转换为 Visual Studio 2010。对于尚未积极开发但现在仍需要修复的遗留项目,我们在虚拟机上设置了完整的开发环境。所以我们有一个单独的vs2003、vs2005和vs2008虚拟机。这可能不是一个理想的解决方案,但它对我们有用。 【参考方案1】:

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

【讨论】:

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

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

【讨论】:

这些是非 .net 应用程序(2003 年的应用程序。)我希望将它们升级到 2005,但这些是旧的遗留应用程序,在 vc2005 下编译时表现出一些奇怪的行为(超出链接器错误 - 我可以修复。)简单来说,我无法向客户证明重写一些复杂的数学算法只是为了让东西在 vc2005 下编译所需的努力。【参考方案3】:

如果您无法在本地运行 XP 模式,请尝试一下。

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

【讨论】:

这不会像他所要求的那样是 Windows 7 原生的。 @m0ck0bject,那你误解了 XP 模式。独特的虚拟环境可能会提供“足够原生”的功能来实现他的愿望。 听说XP模式就像原生运行一样,大部分用户都不会注意到。它不像你必须假脱机整个虚拟机。我尝试模拟以原生方式运行应用程序,并消除虚拟机的感觉。这是一个很好的建议。 XP 模式实际上只是新的运行 XP 的虚拟 PC,加上一些额外的桌面集成,其中来宾的窗口直接出现在主机的桌面上,并且主机 FS 自动安装在来宾中。它仍然是一个“VM”,就像 VMware 是一个一样。 @Jeremy - XP Mode VirtualPC 下载的最新版本不再需要在 CPU 中嵌入硬件虚拟化。 The Register 2010 年 3 月的故事链接:channelregister.co.uk/2010/03/22/… MS Windows 团队博客文章:windowsteamblog.com/windows/b/windows7/archive/2010/03/18/…【参考方案4】:

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

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

【讨论】:

不幸的是我已经尝试过了。 IDE 运行良好,但构建文件的保存位置出现了问题。 您可能需要更改 VS2003 附带的所有可执行文件的属性。 IDE 只是启动命令行编译器并捕获输出,对吗? 是的,我已经弄乱了我能找到的所有属性。尽管如此,可执行文件似乎与临时目录的某些权限问题发生冲突。我一直认为必须有一些可行的方法,至少对于编译而言。事实上,一旦出现问题,我可以将每个解决方案向前推进,这足以成为强制重新测试的理由。按照这个速度,到 2011 年,一切都将在 2005 年 :)【参考方案5】:

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

如果您转到添加/删除组件并尝试添加它,它会要求提供我手头没有的光盘。一旦我拿到光盘,我很确定它会运行良好。

如果您还没有尝试过其他应用程序,那么 Virtual XP 的功能真的很简洁......

【讨论】:

【参考方案6】:

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

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

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

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

我遇到了同样的问题; 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 和 gnu 的 awk 才能使其工作。

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

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

不久前我写了一封 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...

【讨论】:

除了链接您的博客之外,如果您在此处提供有关如何解决问题的详细信息会更好。【参考方案11】:

我在 Windows 7 64 位上使用 Visual Studio 2003 没有任何问题。

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

【讨论】:

【参考方案12】:

运行此安装。需要从 setup 目录运行,cd 根目录下的 setup.exe 不起作用。

D:\setup\SetUp.exe /NO_BSLN_CHECK

【讨论】:

谢谢!这是我安装它所需的唯一技巧。【参考方案13】:

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

我需要在 Win7 64 位下以管理员身份运行 VS2003,以支持旧项目(例如在原始 Xbox 上运行的项目)。旧的 XDK 需要 VS2003,所以升级不是一个选项。我可以运行 WinXP,但我更喜欢 Win7。

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

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

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

您还可以使用 Microsoft SysInternals 的“handle.exe”实用程序来查找并关闭特定文件上某个进程所持有的句柄。编写一个脚本来调用handle.exe 并设置VS2003 项目以将该脚本作为预构建事件运行。 (见this thread。)但是handle.exe需要以管理员身份运行。

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

您可以让 VS2003 以管理员身份运行,在这种情况下 Pre-Build 脚本也以管理员身份运行,因此也可以使用 handle.exe,并且可以。

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

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

所以最后一步就是让 VSLauncher.exe 以管理员身份运行。如this thread 所示,这在 KB2492386 时失败。卸载该更新是这个传奇的最后一步,让一切正常工作。

【讨论】:

【参考方案14】:

补丁现已推出 经过一些逆向工程,我发现了导致泄漏的错误引用的 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 并未完全解锁。我的修复一劳永逸地解决了这个问题,并避免了任何副作用。

【讨论】:

【参考方案15】:

通过执行一些高级步骤,我获得了 Visual Studio .NET 2003,在我的 HP EliteBook Workstation 8760W 上​​运行良好,配备 I7 处理器和 12GB RAM,运行 Windows 7 Professional 64 位。 它们如下:

    为 IIS 7.0 安装 FrontPage 2002 服务器扩展。 安装 Visual Studio .Net 2003。当安装程序命令您配置 Frontpage 2002 服务器扩展时,只需跳过即可。 安装 .Net Framework 1.1 Service Pack 1(在此处下载)。 转到控制面板 > 管理工具 > Internet 信息服务 (IIS) 管理器。突出显示您的计算机,然后双击 ISAPI 和 CGI​​ 限制。将 ASP .NET v1.1.4322 的设置更改为允许。

然后它总是会显示带有以下消息的警报

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

忽略它。另外,不要在IDE的属性中把它设置为兼容模式。

【讨论】:

【参考方案16】:

我确实设法在 Windows 7 32 位上安装了 VS2003。但是,我必须做一些 IIS 技巧才能运行我的 ASP.NET 项目。安装 VS2003 Web Development 组件时无法选择。基本上你必须将你的 VS2003 ASP.NET v1.1 放到 C:\inetpub\wwwroot\project_name 中,并首先让它作为一个独立的门户网站运行。这是我做的步骤。

    在 Windows 7 上安装 IIS

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

    在 ISAPI 和 CGI​​ 限制中启用 ASP.NET 1.1 并确保在 ISAPI 过滤器下添加 ASP.NET 一旦我能够在浏览器中启动我的 ASP.NET 项目,请继续从您的项目位置打开项目,在我的例子中是 C:\inetpub\wwwroot\MHSScoreOrg\MHSScoreOrg.sln。只有当项目完全集成到 IIS 上时,我才能运行我的项目。

【讨论】:

以上是关于有没有人设法让 Visual Studio 2003 在 Windows 7 上运行?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上通过 Visual Studio C# 和 ASP.NET 使用 Compass

Visual Studio 拒绝忘记断点?

如何让 Google Prettify 渲染得更像 Visual Studio

Visual Studio 11 图形调试器的目标应用程序要求

在 Microsoft Visual Studio 2012 中使用 Java

用 Visual Studio 构建 GMP 库?