2012-07-20 62 views
2

我有一個C#項目文件(.csproj),其中包含對$(ProgramFiles)的引用。我正在使用64位Windows 7.當我在Visual Studio 2010中編譯此項目文件時,它正確地在c:\ Program Files(X86)中找到該文件。

如果我嘗試聰明,而是使用Microsoft.Build.Evaluation.ProjectCollection.LoadProject([項目文件]),在試圖建立它的代碼,它計算$(PROGRAMFILES)正確的Ç :\ Program Files

任何想法問題的原因可能是什麼?

回答

5

Visual Studio 2010是一個32位進程,而WOW將爲32位進程提供c:\Program Files (X86)

我這裏假定:

如果我嘗試聰明,而是使用Microsoft.Build.Evaluation.ProjectCollection.LoadProject([項目文件]),在試圖建立它在代碼

當您在「代碼」中執行代碼時,您的代碼正在執行x64,因此您將獲得正常的環境值。

如果需要x86程序文件目錄的路徑,則可以使用x64的ProgramFiles(x86)環境變量。在MSBuild中,這是$(MSBuildProgramFiles32)

相關問題