21

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

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

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

谢谢!

4

16 回答 16

14

如果您无法使其在本机运行,请尝试 XP Mode。

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

于 2009-05-18T18:34:57.187 回答
11

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

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

更新:通过禁用 Aero 功能,我的搜索也能正常工作 - 我已经更新了我的博客文章的详细信息......

于 2010-03-12T10:31:48.900 回答
6

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

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

VS2003 在 Win7 下不受官方支持,尝试这样做会产生一些相当烦人的问题:

Find-in-files 会导致 VS2003 挂起。由于 PDB 文件句柄泄漏,链接失败。Find-in-files 挂起通过使用“禁用视觉主题”来解决。导航到 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 以管理员身份运行,在这种情况下,Pre-Build 脚本也以管理员身份运行,因此 handle.exe 也是如此,并且有效。

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

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

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

于 2012-12-21T01:03:35.483 回答
5

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

于 2016-07-06T04:02:20.300 回答
4

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

D:\setup\SetUp.exe /NO_BSLN_CHECK

于 2011-06-08T15:01:10.960 回答
3

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

于 2009-10-25T22:42:27.147 回答
2

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

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

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

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

于 2009-10-10T15:17:35.747 回答
2

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

于 2010-02-17T23:22:48.213 回答
1

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

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

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

于 2009-07-02T00:48:46.287 回答
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 和 gnu 的 awk 才能使其工作。

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

于 2009-12-03T00:01:16.783 回答
0

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

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

于 2009-05-18T18:40:42.620 回答
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. 勾选“以管理员身份运行此程序”
于 2010-05-19T11:52:28.063 回答
0

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

  1. 在 Windows 7 上安装 IIS

在此处输入图像描述

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

在此处输入图像描述

  1. 在 ISAPI 和 CGI​​ 限制中启用 ASP.NET 1.1 并确保在 ISAPI 过滤器下添加 ASP.NET 在此处输入图像描述 在此处输入图像描述
  2. 一旦我能够在浏览器中启动我的 ASP.NET 项目,请继续从您的项目位置打开项目,在我的例子中是 C:\inetpub\wwwroot\MHSScoreOrg\MHSScoreOrg.sln。只有当它完全集成在 IIS 上时,我才能运行我的项目。
于 2020-07-17T18:42:06.737 回答
0

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

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

然后它将始终显示带有以下消息的警报

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

忽略它。另外,不要在 IDE 的属性中将其置于兼容模式。

于 2017-06-22T21:29:08.437 回答
-2

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

于 2009-05-18T18:28:39.993 回答
-2

您是否考虑过将解决方案升级到 vs2005,使用MSBEE以 .net 1.1 为目标?

于 2009-05-18T18:30:54.293 回答