2013-04-03 55 views
1

我有一個VS2010解決方案,它爲.NET 2.0創建了幾個程序集。MSBuild爲錯誤的框架版本創建衛星程序集

這還包括衛星組件。

當我用VS2010創建所有東西的時候,它很好。但我有一臺使用MSBuild作爲構建服務器的XP機器。從那裏創建的衛星組件不被識別。用ILDASM看,我看到VS2010創建元數據版本2,而MSBuild創建版本4.我想這意味着VS2010創建正確的.NET2版本,而MSBuild只創建.NET2的主要組件,但衛星組件是.NET4。

我已經知道這個話題從這裏:What decides the target framework version of a satellite assembly?

但是,這並不爲我工作。

任何想法如何讓構建服務器創建.NET2衛星程序集? 如果我知道如何正確調用AL.exe,我可能能夠增強我的腳本。

+1

試過[this](http://stackoverflow.com/a/2419961/147211)? – KMoraz

+0

使用'/ tv:2.0'開關設置工具版本並沒有幫助,因爲之後他使用舊的C#編譯器而不是vs2010 c#4.0編譯器。設定目標框架不會有幫助。由於輸出顯示調用生成衛星程序集的'AL.exe'的方式相同,ILDASM仍顯示.NET4-satellite-assemblies。 – ZoolWay

回答

2

好的,我把它砍掉了。

構建機器(WinXP)具有Windows SDK 7.1和AL.exe 10.0.30.x.這是總是創建.NET4衛星組件的人。

我的機器(Win7)與VS2010有一個Windows SDK 7.0a與AL.exe 9.0.30729.1。這是尊重目標框架的一個。

我有(備份後)用生成的機器替換AL.exe。 這工作,但我認爲這是一個非常骯髒的解決方法。

如果有人知道更好的方式,我將不勝感激任何幫助!

相關問題