Visual Studio 2010 - Как использовать переменные системной среды? - PullRequest
4 голосов
/ 15 октября 2010

Я бы очень признателен за помощь или идеи по очень неприятному вопросу.По моему опыту кажется, что каждый раз, когда мне нужно организовать или обновить свои решения / проекты, я понимаю, насколько глючной и плохой является программа.Я всегда заканчиваю тем, что вынужден был найти взлом или столкнуться с неприятным испытанием из-за сбоя, который заставляет меня хотя бы раз начинать процесс с нуля.

В любом случае, моя проблема в том, что я обновлял проекты с 2005 года.до 2008 года, и пришло время начать 2010 год.Для моих старых проектов я решил в какой-то момент использовать переменные среды системы, чтобы установить в качестве выходного каталога.

Например:

My Machine:
System->Advanced Settings->Environment Variables 3DSMAX_DEV_ROOT_32 = F:/Temp/Rampage/
My Project->General:
Output Directory = $(3DSMAX_DEV_ROOT_32)
My Project->Linker->General:
Output File = $(OutDir)MyPlugin.dll

Это всегда работало для Visual Studio 2005 и 2008, и я все еще сильно зависел от этого.Однако на 2010 год это просто не сработает.Я был бы удивлен, если бы я был единственным, кто имел дело с этим, но я не видел, чтобы кто-то еще сталкивался с этим.Другие упоминали переменные среды проекта, но я ничего не видел в системных.В любом случае, если у вас есть какие-либо идеи, как заставить их работать или знаете, почему они, кажется, полностью игнорируют их, я бы хотел услышать об этом.Что еще хуже, я знаю, что начальные цифры обычно запрещены, но у моих EV они есть, а у VS их не разрешено.Я знаю, как можно обойти это, но я в команде разработчиков, и внесение этих изменений будет огромной болью для всех.

Спасибо, что нашли время, чтобы прочитать.

Эрик

Ответы [ 3 ]

4 голосов
/ 16 октября 2010

PATH - это довольно специальная переменная среды - вы не должны использовать ее для указания на временный каталог для вывода VS.

Обратите внимание, что по умолчанию VS делает , а не используйте следующие переменные окружения из вашей системы env, вместо этого переопределяя их своими собственными:

  • PATH
  • INCLUDE
  • LIBPATH
  • LIB

Если вы хотите, чтобы VS использовал для них системные переменные, вам нужно запустить Visual Studio с параметром /useenv:

devenv /useenv

Но вы все равно должны использовать другую переменную, чем PATH - она ​​действительно довольно особенная.(Я немного удивлен, что установка System->Advanced Settings->Environment Variables Path = C:/Temp/ не вызывает у вас много других проблем).

1 голос
/ 08 апреля 2013

Хорошо, я знаю, что это своего рода поздний ответ, но у меня была та же проблема, и она закончилась здесь, так что другие могут найти решение полезным.

Проблема связана с именем переменной: 3DSMAX_DEV_ROOT_32

Visual Studio 2010 не расширяет переменные среды, начинающиеся с цифры.
Это не имело место в Visual Studio 2008.

Переименуйте или добавьте переменную THREEDSMAX_DEV_ROOT_32 с тем же значением иэта переменная будет правильно расширена при использовании в свойстве проектов.

0 голосов
/ 16 октября 2010

Это также случилось со мной, что произошло после новой установки Visual Studio 2010 или любой из задействованных библиотек.

Конечно, сначала проверьте, установлены ли переменные среды (и являются ли они правильными). При переносе из Visual Studio 2005 в 2010 г. я также переносился из Windows XP в Windows 7, и некоторые программы затем устанавливаются в папку «Program Files (x86)» вместо папки без «(x86)». Запишите это также!

Когда вы щелкаете правой кнопкой мыши по файлу включения, который, как вы знаете, должен находиться в одном из путей, заданных переменными среды, и нажимаете «открыть файл», Visual Studio 2010 должен предоставить вам список каталогов включения, в котором он просматривался. Переменные окружения не читаются, эта часть пуста и может показывать что-то простое, например «/ include» вместо «C: / Program Files / YourProgram / include».

Мое решение было довольно простым, потому что после перезагрузки компьютера это сработало ... Просто попробуйте и посмотрите, подходит ли это и вам. Я думаю, что это связано с активацией переменных среды, они глобально устанавливаются при перезагрузке. Также, если вы измените его, вам нужно перезагрузиться, чтобы изменения вступили в силу.

...