0

Visual Studio 2012 で C# を使用していますが、一部のコマンドは Visual Studio では機能しません。

アクセスしようとしています

 Process.Start(Path.Combine(Environment.SystemDirectory, "msconfig.exe"));

他の同様のコマンドが機能していません。これらの機能は、同じマシン上のVisual Studio 2010で正常に機能しています。解決策を教えてください。

「Win32Exception ...指定されたファイルが見つかりません」と表示されています

4

2 に答える 2

4

私がコメントに入れたことを要約すると、ファイルシステムリダイレクトの対象となる32ビットプロセスで実行しているため、問題が発生しています-システムディレクトリにアクセスしようとすると、(デフォルトで)Cにリダイレクトされます。 \Windows\SysWOW64.

このディレクトリにはmsconfig.exe.

Visual Studio 2012 では、AnyCPU Prefer 32-bitオプションが導入され、既定で選択されています。

最善のアドバイスは、ビルド プラットフォームをに切り替える64-bitか、チェックを外すことPrefer 32-bitです。

于 2013-08-19T06:47:57.307 に答える
1

これは、セキュリティのためではありません。例外として、ディスクにファイルが見つからないと言われています。これは、Visual Studio プロジェクト ファイル構成の問題です。

string path = Path.Combine(Environment.SystemDirectory, "msconfig.exe");
if(File.Exists(path))
  Process.Start(path);

デフォルト構成を使用してこれを試しただけで、if チェック自体が失敗したことがわかりました。これを実現するには、プロジェクトのプラットフォームを変更する必要があります。デフォルトでは、64 ビット OS を実行していて任意の CPU を選択している場合でも、Visual Studio 環境は常に x86 を使用します。以下は、プログラムが動作するための設定です。 Right click on projectソリューション エクスプローラーで、[設定] -> [ビルド] -> [Platform ターゲット] -> [x64 を選択]選択します。

設定の視覚的表現については、下の画像をご覧ください。

ここに画像の説明を入力

問題が解決したら回答済みとしてマーク

于 2013-08-19T07:41:32.807 に答える