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

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

Обновлено:

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

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

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

Вам нужна переменная среды специально только для этой программы?

Mark Ingram 19.09.2008 13:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
63
1
154 266
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

Visual Studio отказывается принимать что-либо, кроме исполняемых файлов (.exe) в пути для запуска программы.

Tobi 19.09.2008 12:57

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

  1. Щелкните правой кнопкой мыши «Мой компьютер».
  2. Выбрать свойства
  3. Выберите вкладку «Дополнительно»
  4. Нажмите кнопку "переменные среды"
  5. В разделе «Системные переменные» добавьте новую переменную среды, которую вы хотите.
  6. "Хорошо" до конца, чтобы принять ваши изменения

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

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

OJ. 20.09.2008 12:29

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

Tobi 20.09.2008 13:50

Я прошел через определение переменной среды на уровне пользователя («Мой компьютер»> «Свойства»> «Дополнительно»). Запустите новый экземпляр командной оболочки и на всякий случай введите% NEW_VAR%. Запустите новый экземпляр devenv и приступайте к отладке.

Gishu 09.09.2009 10:54
Ответ принят как подходящий

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

Откройте свой проект. Перейдите в Project -> Properties ... В Configuration Properties -> Debugging отредактируйте значение «Environment», чтобы установить переменные среды.

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

Here's a screenshot of the settings dialog

Я использую VS2008, и в свойствах моего проекта нет «Свойства конфигурации» или «Отладка». Я не могу найти ничего о переменных среды в свойствах проекта. Что я делаю не так?

Stewart Johnson 19.11.2008 18:41

Я отредактирую этот пост со скриншотом, где находятся настройки.

John Dibling 21.11.2008 18:21

Привет, как вы попали на этот экран? В моем VS2008 и VS2005 свойства проекта выглядят по-разному, и у них нет настроек среды.

Grzenio 12.12.2008 13:54

Это свойства для проектов C / C++. Я думаю, вы используете C# или VB.NET

Juozas Kontvainis 03.03.2009 17:04

Всем привет. Я заметил, что некоторые из моих разработчиков, которые все работают на C++, также не могут видеть эти свойства. В конце концов оказалось, что именно так и установили MSVC. Когда они переустановили MSVC со всеми включенными параметрами, они смогли увидеть все эти свойства, а также другие функции IDE.

John Dibling 03.03.2009 18:58

к сожалению, это недоступно для удаленной отладки.

Bahbar 27.11.2009 13:13

Также, похоже, недоступен для веб-проектов.

Ryan 15.06.2010 00:18

Есть ошибка, не позволяющая добавлять несколько переменных. См. Обходной путь в: connect.microsoft.com/VisualStudio/feedback/details/739477/…

Alex 06.03.2014 20:20

Скриншот недоступен (пуст) - ссылка не работает?

Peter Mortensen 23.05.2017 11:42

@PeterMortensen: Исправлено.

John Dibling 23.05.2017 21:03

Ничего отдаленно похожего на это в VS2017

dudeNumber4 23.04.2018 23:13

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

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

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

_putenv("MYANSWER=42");

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

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

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

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

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

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

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

В 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);

OMG, последние полчаса я искал этот простой вызов Environment.SetEnvironmentVariable (). Спасибо!

Alan 05.12.2017 21:16

Это объясняет, как установить глобальную переменную среды из кода. В вопросе это прямо упоминается как нежелательное.

Der Hochstapler 25.05.2020 11:59

Вы можете установить его в Свойство> Свойства конфигурации> Отладка> Среда.

Другие вопросы по теме