2010-12-08 16 views
9

「PROGRAMFILES」変数が使用されているときにWindows 7が何らかの形で「PROGRAMFILES(X86)」環境変数に戻って延期するかどうか?誰もが知っていますかWindows 7の64ビットPROGRAMFILES環境変数

我々は、開発者が「$(PROGRAMFILES)」を使用してVisual Studioとのprojファイル参照アセンブリを使用している状況があります。マシンは64ビットで、 "ProgramFiles"変数は "C:¥Program Files"を指しますが、アセンブリは "C:¥Program Files(X86)"にありますが、プロジェクトはビルドされます。リテラル "C:\ Program Files"パスが使用されている場合はビルドされません。コンパイラがアセンブリを見つけることができないと言っています

+4

ハンス答えは正しいですし、ここでより多くの情報を見つけることができます。http://msdn.microsoft.com/en-us/library/aa384232%28VS.85%29.aspx –

答えて

6

はい、Windowsは自動的に32ビットプログラムのc:\program filesへのフォルダとファイルのアクセスをc:\program files (x86)に割り当てます。 Visual StudioとMSBuildは32ビットプログラムです。 c:\ windows \ system32 vs c:\ windows \ syswow64でも同じです。

+0

ありがとう。私もそう思っていました。 – PhilBrown

+1

私は、これは自動的にプロセスのbit化に応じて、正しいパスを提供しない、環境変数の%ProgramFiles%を用いる以外は真であるとは思いません。 \プログラムファイル(x86の) '64上の32ビットプロセス用:VSは32ビットと' $(PROGRAMFILES)は '' Cになり、環境変数の%ProgramFiles%を指しているので、OPの状況が働く理由がありますビットOS。私はC '中に64ビットのexeファイルを起動した場合:\ OSはちょうどC'に私に経路を切り替える32ビットプロセスからプログラムファイル\アクメの\ foo64.exe':\プログラムファイル(x86の)\アクメ\ foo64.exe'。 –

関連する問題