管理されたネイティブdllをC#アプリケーションにロードしようとしています。PATH環境変数を設定して、アプリケーションがロードするdllを見つけられるようにします。C ++ではそれは簡単ですが、C#プロジェクトでそれを行うにはどうすればよいですか?(ちなみに、私はVS2012、.NET、WPFを使用しています)
6308 次
2 に答える
5
Environment.SetEnvironmentVariable()を使用します。
string currentPath = Environment.GetEnvironmentVariable("path");
Environment.SetEnvironmentVariable("path",currentPath + ";c:\path_to_libraries");
これは現在のプロセスの範囲内にあることに注意してください。永続的な環境変数 (ユーザーまたはマシン スコープ) を設定する場合は、Environment.SetEnvironmentVariable(string, string, EnvironmentVariableTarget)
オーバーロードを使用します。 そのリファレンスについては、こちらを参照してください。
于 2013-01-30T14:15:12.107 に答える
1
このことに注意してください。System.Environment.SetEnvironmentVariable("windir", System.Environment.GetEnvironmentVariable("SystemRoot"), EnvironmentVariableTarget.User); など、ターゲットを明示的に設定します。
ターゲットを設定しなかった場合、Windows セッションで非常に奇妙なことが起こり、ログオフしてログインするか、再起動する必要さえありました。したがって、この変更が実際にマシンまたはプロセス レベルで行われる場合を除き、デフォルトで満足のいく結果が得られると想定しないでください。
于 2013-11-13T23:55:24.750 に答える