2

$(ProgramFiles)への参照を含む C# プロジェクト ファイル (.csproj) があります。64 ビットの Windows 7 を使用しています。このプロジェクト ファイルを Visual Studio 2010 内でコンパイルすると、ファイルはc:\Program Files (X86)に正しく配置されます。

コードでビルドしようとして、代わりに Microsoft.Build.Evaluation.ProjectCollection.LoadProject([project file]) を使用すると、$(ProgramFiles)が誤ってc:\Program Filesとして評価されます。

問題の原因は何ですか?

4

1 に答える 1

5

Visual Studio 2010 は 32 ビット プロセスであり、WOWc:\Program Files (X86)32 ビット プロセスに対応します。

ここでの私の仮定:

賢くしようとして、代わりに Microsoft.Build.Evaluation.ProjectCollection.LoadProject([プロジェクト ファイル]) を使用してコードでビルドしようとすると、

「コード内」で実行している場合、コードはx64を実行しているため、通常の環境値が得られます。

ProgramFiles(x86)x86 プログラム ファイル ディレクトリへのパスが必要な場合は、x64の環境変数を使用できます。MSBuild では、$(MSBuildProgramFiles32).

于 2012-07-20T13:40:34.440 に答える