0
string root = System.Environment.GetEnvironmentVariable("ROOT").

Visual Studio ルートからプログラムを起動すると、予想されるディレクトリになります。ただし、自分で起動する場合 (管理者権限の有無にかかわらず)、root は未定義です。

結果をログ ファイルに書き込むと、次のようになります。


Visual Studio から起動:

ログ開始

ルート ディレクトリにアクセスしています ....


自分で起動します:

ログ開始

ルートが定義されていません! ……

編集: この環境変数は、「HKEY_LOCAL_MACHINE\System\Control\Session Manager\Environment」で定義されています。

プロンプトに SET と入力すると表示されます。[コンピューター] -> [プロパティ] -> [詳細設定] から環境変数にアクセスしても表示されません。

プログラムは同じ設定を持つマシンで動作することになっているため、ユーザーは変数自体を定義しません (プログラムが環境にアクセスできるようになります)。

4

1 に答える 1

0

プロセスが実行されているユーザーに対して環境変数が定義されていないと思われます。

http://support.microsoft.com/kb/310519

システムおよびユーザー固有の環境変数があります。

envプロンプトで(または) と入力setして、設定されているものとされていないものを一覧表示できます。

于 2013-07-26T19:43:12.063 に答える