72

On a class library project, I set the "Start Action" on the Debug tab of the project properties to "Start external program" (NUnit in this case). I want to set an environment variable in the environment this program is started in. How do I do that? (Is it even possible?)

EDIT:

It's an environment variable that influences all .NET applications (COMplus_Version, it sets the runtime version) so setting it system wide really isn't an option.

As a workaround I just forced NUnit to start in right .NET version (2.0) by setting it in nunit.exe.config, though unfortunately this also means all my .NET 1.1 unit tests are now also run in .NET 2.0. I should probably just make a copy of the executable so it can have its own configuration file...

(I am keeping the question open (not accepting an answer) in case someone does happen to find out how (it might be useful for other purposes too after all...))

4

9 に答える 9

89

少なくとも Visual Studio 2008 および Visual Studio 2005 では、プロジェクト設定で環境変数の変更を指定できます。

プロジェクトを開きます。[プロジェクト] -> [プロパティ] に移動します。[構成プロパティ] -> [デバッグ] で、[環境] の値を編集して環境変数を設定します。

たとえば、アプリケーションのデバッグ時にディレクトリ「c:\foo\bin」をパスに追加する場合は、「環境」の値を「PATH=%PATH%;c:\foo\bin」に設定します。

これは設定ダイアログのスクリーンショットです

于 2008-09-30T22:24:10.013 に答える
8

Visual Studio 2003では、デバッグ用の環境変数を設定できないようです。

私がC/C ++で行うことは、変数を使用_putenv()して設定することです。main()通常、#if defined DEBUG_MODE / #endif特定のビルドにのみ含まれるように、をで囲みます。

_putenv("MYANSWER=42");

os.putenv()を使用してC#でも同じことができると思います。

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

これらは、そのシェルプロセスに対してのみ環境変数を設定します。そのため、あなたが探しているのは一時的な設定です。

ちなみに、sysinternalsツールであるプロセスエクスプローラー( http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx )を使用することをお勧めします。特定のプロセスの環境変数のコピーが何であるかを確認できるため、設定したものが取得したものであることを検証できます。

于 2009-07-16T20:52:43.440 に答える
1

NUnit 2.5 以降では、/framework スイッチを使用できます。

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

これはNUnit のヘルプ ページからのものです。

于 2012-02-09T02:43:16.473 に答える
0

呼び出すことができるバッチ ファイルを設定します。パスをバッチ ファイルに渡し、バッチ ファイルに環境変数を設定してから、NUnit を呼び出します。

于 2008-09-19T08:53:19.263 に答える
0

環境をセットアップするためにバッチ ファイルを使用できない場合、唯一の可能性があるオプションは、システム全体の環境変数をセットアップすることです。これらは次のようにして見つけることができます

  1. 「マイコンピュータ」を右クリック
  2. プロパティを選択
  3. 「詳細」タブを選択します
  4. 「環境変数」ボタンをクリックします
  5. 「システム変数」セクションで、必要な新しい環境変数を追加します
  6. あなたの変更を受け入れるためにずっと「OK」

Visual Studio を再起動する必要があるかどうかはわかりませんが、可能性は低いと思われます。HTH

于 2008-09-19T13:16:34.847 に答える
0

環境は親プロセスから継承されるため、開始を実行する前に環境変数を変更する Visual Studio 用のアドインを作成できます。それをあなたのプロセスに組み込むのがどれほど簡単かはわかりません。

于 2008-10-02T04:49:25.320 に答える