Как установить определенные переменные среды при отладке в Visual Studio?

В проекте библиотеки классов я установил & quot; Запустить действие & quot; на вкладке «Отладка» свойств проекта «Запустить внешнюю программу»; (NUnit в этом случае). Я хочу установить переменную окружения в среде, в которой запускается эта программа. Как мне это сделать? (Это вообще возможно?)

РЕДАКТИРОВАТЬ:

Это переменная среды, которая влияет на все приложения .NET (COMplus_Version, она устанавливает версию времени выполнения), поэтому настройка ее в масштабе всей системы на самом деле не вариант.

В качестве обходного пути я просто заставил NUnit запускаться в правильной версии .NET (2.0), установив его вnunit.exe.configхотя, к сожалению, это также означает, что все мои модульные тесты .NET 1.1 теперь также выполняются в .NET 2.0. Я должен, вероятно, просто сделать копию исполняемого файла, чтобы он мог иметь свой собственный файл конфигурации ...

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

 Mark Ingram19 сент. 2008 г., 11:21
Вы хотите переменную окружения специально для этой программы?

Ответы на вопрос(7)

Решение Вопроса

В Visual & # xA0; Studio & # xA0; 2008 и Visual & # xA0; Studio & # xA0; 2005, по крайней мере, вы можете указать изменения переменных среды в настройках проекта.

Откройте свой проект. Перейти к проекту - & gt; Свойства ... В разделе Свойства конфигурации - & gt; Отладка, отредактируйте «Среду» значение для установки переменных среды.

Например, если вы хотите добавить каталог & quot; c: \ foo \ bin & quot; чтобы указать путь при отладке приложения, установите «Среда»; значение для "PATH =% PATH%; c: \ foo \ bin".

Here's a screenshot of the settings dialog

 12 дек. 2008 г., 11:54
Привет, как ты попал на этот экран? В моем проекте VS2008 и VS2005 свойства выглядят по-разному, и у них нет настроек среды
 21 нояб. 2008 г., 16:21
Я отредактирую этот пост со снимком экрана с настройками.
 23 апр. 2018 г., 22:13
Ничто отдаленно не похоже на это в VS2017
 19 нояб. 2008 г., 16:41
Я использую VS2008, и в свойствах моего проекта нет «Свойства конфигурации». или & quot; Отладка & quot; в теме. Я ничего не могу найти о переменных окружения в свойствах проекта. Что я делаю неправильно?
 03 мар. 2009 г., 15:04
Это свойства для проектов C / C ++. Я предполагаю, что вы используете C # или VB.NET

В Visual Studio для Mac и C # вы можете использовать:

Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");

Но вам понадобится следующее пространство имен

using System.Collections;

Вы можете проверить полный список переменных с помощью этого:

foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
            Console.WriteLine("  {0} = {1}", de.Key, de.Value);
 05 дек. 2017 г., 19:16
О боже, я искал последние полчаса, чтобы найти этот простой вызов Environment.SetEnvironmentVariable (). Спасибо!

Настройте командный файл, который вы можете вызвать. Передайте путь к пакетному файлу, установите пакетный файл для переменной среды и затем вызовите NUnit.

 Tobi19 сент. 2008 г., 10:57
Visual Studio отказывается принимать все, кроме исполняемых файлов (.exe) в пути для запуска программы.

Visual Studio 2003, похоже, не позволяет устанавливать переменные среды для отладки.

В C / C ++ я использую_putenv() вmain() и установите любые переменные. Обычно я окружаю его#if defined DEBUG_MODE / #endif чтобы убедиться, что только определенные сборки имеют его.

_putenv("MYANSWER=42");

Я считаю, что вы можете сделать то же самое с C # с помощью os.putenv (), т.е.

os.putenv('MYANSWER', '42');

Они будут устанавливать переменную envrironment только для этого процесса оболочки, и, как таковой, это эфемерный параметр, который вы ищете.

Кстати, хорошо использовать Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), который является инструментом sysinternals. Вы можете видеть, что представляет собой данный процесс & apos; Копия переменных окружения есть, так что вы можете проверить, что то, что вы установили, это то, что вы получили.

Начиная с NUnit 2.5 вы можете использовать переключатель / framework, например:

nunit-console myassembly.dll /framework:net-1.1

Это изСтраницы справки NUnit.

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

Если вы не можете использовать bat-файлы для настройки своей среды, то единственно вероятным вариантом является настройка общесистемной переменной среды. Вы можете найти их, выполнив

Right click "My Computer" Select properties Select the "advanced" tab Click the "environment variables" button In the "System variables" section, add the new environment variable that you desire "Ok" all the way out to accept your changes

Я не знаю, придется ли вам перезапускать Visual Studio, но кажется маловероятным. НТН

 21 сент. 2008 г., 05:31
Да - пропустил это. Сожалею.
 Tobi20 сент. 2008 г., 11:50
Да, это переменная среды, которая влияет на все приложения .NET (COMplus_Version, она устанавливает версию во время выполнения), поэтому настройка всей системы на самом деле не вариант.
 20 сент. 2008 г., 10:29
Марк, я считаю, что требование было для среды, в которой была запущена программа, а не для среды пользователя или системы.
 09 сент. 2009 г., 08:54
Я получил это, определив переменную окружения на уровне пользователя («Мой компьютер»> «Свойства»> «Дополнительно»). Запустите новый экземпляр командной оболочки и введите echo% NEW_VAR%, чтобы быть уверенным. Запустите новый экземпляр devenv и отладьте его.

Ваш ответ на вопрос