Кому-нибудь удалось запустить Visual Studio 2003 под управлением Windows 7? - PullRequest
21 голосов
/ 18 мая 2009

Да, я знаю ... Я мог бы настроить виртуальную машину под управлением XP. К сожалению, наша среда сборки такова, что нам нужно запускать VC2003, 2005 и 2008 одновременно, и было бы намного удобнее, если бы я мог запускать 2003 с нуля на Windows 7 для тех немногих проектов, которые нам нужны.

Я понимаю, что некоторые вещи могут быть недоступны в IDE, но я смог запустить 2003 под Windows Vista, и если бы я мог получить тот же базовый уровень функциональности под Windows 7, я был бы очень рад.

Прямо сейчас я получаю сообщение об ошибке при открытии файла * .pdb при компиляции после переключения vc2003 для запуска с правами администратора в режиме совместимости для XP SP 2.

Спасибо!

Ответы [ 15 ]

14 голосов
/ 18 мая 2009

Попробуйте XP Mode, если вы не можете запустить его в исходном режиме.

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

9 голосов
/ 12 марта 2010

Я недавно написал запись в блоге , которую вы можете проверить - http://technikhil.wordpress.com/2010/01/12/visual-studio-2003-and-windows-7-can-get-along-really/

Единственное, на чем я застрял сейчас, - это глобальная функциональность поиска VS 2003 - он зависает в приложении. Мой обходной путь заключается в использовании поиска Windows 7 :-). Кроме этого - пока все хорошо ...

Обновление: поиск также работает, отключив функцию Aero - я обновил сообщение в блоге с подробностями ...

5 голосов
/ 06 июля 2016

ЗАПИСЬ СЕЙЧАС В НАЛИЧИИ
После некоторого реверс-инжиниринга я обнаружил неправильно перекомпонованный 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 не был полностью разблокирован, хотя инструмент «Ручка» утверждал, что он был закрыт. Мое исправление устраняет проблему раз и навсегда и устраняет любые побочные эффекты.

5 голосов
/ 21 декабря 2012

(Многое из этого повторяет то, что уже было написано выше.)

Мне нужно запустить VS2003 в качестве администратора для 64-битной Win7, чтобы поддерживать устаревшие проекты (например, те, которые выполняются на исходном Xbox). Старый XDK требует VS2003, поэтому обновление не вариант. Я мог бы запустить WinXP, но я предпочитаю Win7.

VS2003 официально не поддерживается в Win7, и попытка сделать это создает пару довольно раздражающих проблем:

Поиск в файлах приводит к зависанию VS2003. Связывание не выполняется из-за утечки дескриптора файла PDB. Зависание поиска в файлах решается с помощью «Отключить визуальные темы». Перейдите к ярлыку VS2003 (Пуск -> Microsoft Visual Studio .NET 2003), щелкните правой кнопкой мыши, чтобы получить контекстное меню, выберите вкладку «Совместимость», панель «Параметры» и установите флажок «Отключить визуальные темы».

Ошибка компоновщика (LNK1201) происходит, когда вы запускаете программу через отладчик, останавливаете ее, изменяете файл и собираете его. Ошибка заключается в том, что Visual Studio содержит дескриптор файла PDB, а компоновщик пытается выполнить запись в этот файл. Вы можете остановить и перезапустить VS2003, чтобы обойти проблему. Работает, но раздражает.

Вы также можете использовать утилиту «handle.exe» Microsoft SysInternals, чтобы найти, а затем закрыть дескрипторы, хранящиеся в процессе, для определенного файла. Напишите сценарий для вызова handle.exe и настройте проект VS2003 для запуска этого сценария в качестве события предварительной сборки. (См. в этой теме .) Но handle.exe требует запуска с правами администратора.

Вы можете гипотетически изменить handle.exe для запуска от имени администратора, используя обычные шаги (например, в качестве параметра совместимости), но затем handle.exe (по-видимому) запускается во вложенной оболочке, а затем текст stdout не попадает в вызывающий сценарий.

Вы можете заставить VS2003 запускаться от имени администратора, и в этом случае сценарий предварительной сборки также запускается от имени администратора, следовательно, выполняет handle.exe, и это работает.

Осталось уловить, чтобы правильно открыть файлы VS2003 SLN. Если вы просто заставляете VS2003 запускаться от имени администратора автоматически, тогда селектор версии VS не сможет запустить VS2003. Я не знаю почему, но это так.

Вы можете связать файлы SLN для открытия, используя VS2003 devenv.exe вместо VSLauncher.exe. Это работает, но тогда все новые файлы SLN (2005, 2008, 2010, 2012, ...) не открываются.

Итак, последний шаг - запустить VSLauncher.exe с правами администратора. Это не работает с KB2492386, как указывает этот поток . Удаление этого обновления было последним шагом в этой саге, чтобы все заработало.

4 голосов
/ 08 июня 2011

Запустите эту установку. Вам нужно запустить его из каталога установки, файл setup.exe в корне компакт-диска не будет работать.

D: \ setup \ SetUp.exe / NO_BSLN_CHECK

3 голосов
/ 26 октября 2009

Решение, которое я нашел в Интернете, которое помогло: Для вашей визуальной студии используйте совместимость приложений = Windows Vista SP2, а НЕ WinXP SP3

2 голосов
/ 18 февраля 2010

Я использую Visual Studio 2003 на win7 с момента выпуска самой первой версии RC: S почему у людей проблемы?

2 голосов
/ 10 октября 2009

У меня очень грязный и жалкий обходной путь для проблемы с pdb.

Загрузите и запустите Sysinternals-ProceXP, нажмите CTRL-F и введите имя pdb (например, smt ($ ProjectName) .pdb), которое невозможно создать при компоновке. Двойной щелчок, когда он найден. (Если он не может быть найден, запустите procxp с правами администратора)

Тогда вы увидите, что файл .pdb выделен в нижней панели основного экрана. Щелкните правой кнопкой мыши и выберите «Закрыть дескриптор». При повторном создании решения оно не вызовет ошибку.

Я не знаю, может ли это решение быть написано в сценарии, но это по крайней мере лучше, чем перезапуск Visual Studio.

1 голос
/ 03 декабря 2009

Я испытываю ту же проблему; devenv.exe оставляет файлы pdb открытыми после запуска проекта. Я сделал командный файл, чтобы обойти его, он закрывает все .pdb файлы, открытые devenv.exe:

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

Вам понадобится файл handle.exe от sysinternals и awk от gnu, чтобы он заработал.

Используйте на свой страх и риск. Закрытие ручек может вызвать нестабильность приложения или системы.

1 голос
/ 02 июля 2009

Я попытался установить VS2003 на 64-разрядную версию Windows 7, используя функцию Virtual Windows XP. Я достаточно уверен, что это будет успешно. Проблема, с которой я столкнулся, заключается в том, что установщик хочет, чтобы IIS был установлен, а установка XP, предоставляемая Virtual XP, по умолчанию не включает его.

Если вы перейдете в раздел «Установка и удаление компонентов» и попытаетесь добавить его, он запросит диск, которого у меня не было под рукой. Как только я заполучу диск, я почти уверен, что он будет работать нормально.

Если вы не пробовали его для других приложений, функция Virtual XP будет действительно аккуратной ...

...