문제

클래스 라이브러리 프로젝트에서 프로젝트 속성의 디버그 탭에 있는 "시작 작업"을 "외부 프로그램 시작"(NUnit 이 경우).이 프로그램이 시작되는 환경에 환경 변수를 설정하고 싶습니다.어떻게 해야 하나요?(그것도 가능할까요?)

편집하다:

이는 모든 .NET 애플리케이션(COMplus_Version, 런타임 버전 설정)에 영향을 미치는 환경 변수이므로 시스템 전체에 걸쳐 설정하는 것은 실제로 옵션이 아닙니다.

해결 방법으로 NUnit을 올바른 .NET 버전(2.0)에서 설정하여 시작하도록 했습니다. nunit.exe.config, 불행하게도 이는 모든 .NET 1.1 단위 테스트가 이제 .NET 2.0에서도 실행된다는 의미이기도 합니다.아마도 자체 구성 파일을 가질 수 있도록 실행 파일의 복사본을 만들어야 할 것입니다 ...

(누군가가 방법을 알아낼 경우를 대비해 질문을 열어두었습니다(답변을 받아들이지 않음). (결국 다른 목적에도 유용할 수 있습니다...)

도움이 되었습니까?

해결책

Visual Studio 2008 및 Visual Studio 2005에서는 적어도 프로젝트 설정에서 환경 변수에 대한 변경 사항을 지정할 수 있습니다.

프로젝트를 엽니다.프로젝트 -> 속성...으로 이동합니다.구성 속성 -> 디버깅에서 '환경' 값을 편집하여 환경 변수를 설정합니다.

예를 들어, 애플리케이션을 디버깅할 때 경로에 "c:\foo\bin" 디렉터리를 추가하려면 'Environment' 값을 "PATH=%PATH%;c:\foo\bin"으로 설정합니다.

Here

다른 팁

Visual Studio 2003에서는 디버깅을 위한 환경 변수 설정을 허용하지 않는 것 같습니다.

C/C++에서 내가 하는 일은 다음과 같습니다. _putenv() ~에 main() 그리고 변수를 설정하세요.보통 나는 그것을 다음과 같이 둘러 쌉니다. #if defined DEBUG_MODE / #endif 특정 빌드에만 해당 기능이 있는지 확인하세요.

_putenv("MYANSWER=42");

os.putenv()를 사용하여 C#에서도 동일한 작업을 수행할 수 있다고 생각합니다.

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

이는 해당 쉘 프로세스에 대해서만 환경 변수를 설정하므로 찾고 있는 임시 설정입니다.

그런데 프로세스 탐색기를 사용하는 것이 좋습니다(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), 이는 sysinternals 도구입니다.특정 프로세스의 환경 변수 복사본이 무엇인지 확인할 수 있으므로 설정한 내용이 얻은 내용인지 확인할 수 있습니다.

Mac 및 C#용 Visual Studio에서는 다음을 사용할 수 있습니다.

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

하지만 다음 네임스페이스가 필요합니다.

using System.Collections;

다음을 사용하여 전체 변수 목록을 확인할 수 있습니다.

foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
            Console.WriteLine("  {0} = {1}", de.Key, de.Value);

NUnit 2.5부터 다음과 같이 /framework 스위치를 사용할 수 있습니다.

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

이것은에서 온 것입니다 NUnit의 도움말 페이지.

환경을 설정하기 위해 bat 파일을 사용할 수 없는 경우 가능한 유일한 옵션은 시스템 전체 환경 변수를 설정하는 것입니다.다음을 수행하여 찾을 수 있습니다.

  1. "내 컴퓨터"를 마우스 오른쪽 버튼으로 클릭하세요.
  2. 속성 선택
  3. "고급" 탭을 선택하세요
  4. "환경변수" 버튼을 클릭하세요.
  5. "시스템 변수" 섹션에서 원하는 새 환경 변수를 추가합니다.
  6. "확인"을 눌러 변경 사항을 수락하세요.

Visual Studio를 다시 시작해야 하는지는 모르겠지만 그럴 것 같지는 않습니다.HTH

호출할 수 있는 배치 파일을 설정합니다.배치 파일의 경로를 전달하고 배치 파일에 환경 변수를 설정한 다음 NUnit을 호출합니다.

환경은 상위 프로세스에서 상속되므로 시작을 수행하기 전에 환경 변수를 수정하는 Visual Studio용 추가 기능을 작성할 수 있습니다.귀하의 프로세스에 적용하는 것이 얼마나 쉬운지 잘 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top