2012-08-24 49 views
2

我們試圖切換很多項目以使用SDK7.1。這對於C++項目來說似乎相當簡單,您可以將項目設置中的「平臺工具集」屬性更改爲「Windows7.1SDK」,並且都很好。但是,對於C#項目(如果將構建輸出設置爲診斷模式),我們可以看到各種工具(如sgen,resgen,LC)從以前的SDK 7.0A目錄中運行。或者,在我們安裝Vistual Studio 2012的某些機器上,其中一些工具來自v8.0A SDK文件夾。工具和它們所產生的組件之間如何配置使用Windows SDK 7.1工具構建的C#項目?

不匹配似乎是導致各種錯誤,如:

LC : error LC0000: 'Could not load file or assembly 
'S:\Libraries\Bin\Release\Some.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.' 

我們似乎可以編輯的.csproj文件,幾乎特設和BeforeBuild等目標,從而重新定義各種SDKPath屬性。這似乎迫使正確的工具被使用。但是,如果感覺非常'哈克'。我們一定會錯過設置一些東西,因爲我們仍然有一些錯誤。

另外,我們發現,我們可以在這裏更改註冊表值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\SDK40ToolsPath 

在正確的SDK點。但是,不得不修改環境來支持這一點。我們想要構建我們產品的舊版本,並且必須切換環境才能做到這一點,這很醜且容易出錯。

有沒有這樣做的官方方式?

謝謝。

P.S.我發現這個問題http://social.msdn.microsoft.com/Forums/en-MY/windowssdk/thread/ebc8914f-d4b5-44e7-8c76-10332d155812海報似乎在問類似的事情,但是,這個問題似乎沒有得到答案。

回答

相關問題