(Многое из этого повторяет то, что уже было написано выше.)
Мне нужно запустить 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, как указывает этот поток . Удаление этого обновления было последним шагом в этой саге, чтобы все заработало.