2011-08-26 105 views
4

我們有一個包含58個項目的Visual Studio 2008解決方案。一個項目的目標是3.5運行時,而其他57個目標3.0。該解決方案在Visual Studio 2008中正常生成。我在Visual Studio 2010中打開解決方案,然後繼續執行升級項目嚮導。出現提示時,我拒絕定位到4.0運行時並堅持使用當前選定的運行時。轉換完成後沒有錯誤。將VS 2008(c#)解決方案轉換爲VS 2010後的錯誤/警告

當試圖建立我得到的大量以下兩個警告:

「的主要參考文獻[AssemblyX]未能得到解決,因爲它在.NET Framework組件間接依賴」 CrystalDecisions。 。Enterprise.Framework,版本= 11.5.3300.0文化=中性公鑰= 692fbea5521e1304"具有較高版本 「11.5.3300.0」 比版本 「10.5.3700.0」 在當前的目標框架

C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets「

「的主要參考文獻[AssemblyY]不能被解析,因爲它具有在.NET Framework組件間接依賴性‘mscorlib程序,版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089’具有比當前目標框架中的版本「2.0.0.0」更高版本「4.0.0.0」

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \

我看着清單爲一個組件Microsoft.Common.targets」,其中發生該錯誤:

// Metadata version: v4.0.30319 
.assembly extern System.Web 
{ 
    .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A)       // .?_....: 
    .ver 2:0:0:0 
} 
.assembly extern mscorlib 
{ 
    .publickeytoken = (B7 7A 5C 56 19 34 E0 89)       // .z\V.4.. 
    .ver 4:0:0:0 //***********Why is this targeting the 4.0? 
} 
.assembly extern System.Xml 
{ 
    .publickeytoken = (B7 7A 5C 56 19 34 E0 89)       // .z\V.4.. 
    .ver 2:0:0:0 
} 
.assembly extern [SomeAssembly1] 
{ 
    .ver 1:0:0:0 
} 
.assembly extern [SomeAssembly2] 
{ 
    .publickeytoken = (A7 E6 CA C5 42 3F 9E A9)       // ....B?.. 
    .ver 3:1:30307:0 
} 
.assembly extern [SomeAssembly3] 
{ 
    .publickeytoken = (A7 E6 CA C5 42 3F 9E A9)       // ....B?.. 
    .ver 3:1:30307:0 
} 
.assembly extern mscorlib as mscorlib_6 
{ 
    .publickeytoken = (B7 7A 5C 56 19 34 E0 89)       // .z\V.4.. 
    .ver 2:0:0:0 
} 
.assembly extern System 
{ 
    .publickeytoken = (B7 7A 5C 56 19 34 E0 89)       // .z\V.4.. 
    .ver 2:0:0:0 
} 
.assembly extern Relo.Profile.Client 
{ 
    .ver 1:0:0:0 
} 
.assembly extern PRERS.Logging 
{ 
    .publickeytoken = (A7 E6 CA C5 42 3F 9E A9)       // ....B?.. 
    .ver 3:1:30307:0 
} 
.assembly extern Microsoft.Practices.EnterpriseLibrary.Logging 
{ 
    .publickeytoken = (74 B5 57 D6 49 41 67 26)       // t.W.IAg& 
    .ver 3:1:0:0 
} 

我看了SomeAssembly1,SomeAssembly2,SomeAssembly3(以及整個解決方案)所做的參考,我找不到任何目標4.0。

我在互聯網上搜索解決方案/討論,沒有任何解決方法I發現似乎對我有用

http://social.msdn.microsoft.com/Forums/en/msbuild/thread/516647ee-dccf-49ee-959a-00b1fc098eeb

http://connect.microsoft.com/VisualStudio/feedback/details/571860/assemblies-targetting-net-3-5-will-not-load-in-applications-also-targetting-net-3-5

http://arstechnica.com/civis/viewtopic.php?f=20&t=1112439

http://connect.microsoft.com/VisualStudio/feedback/details/510467/migrated-project-cant-compile-the-commandline-for-resgen-task-is-to-long

任何幫助是極大的讚賞。謝謝!

+0

是您正在使用的機器上安裝了3.0和3.5版本的框架? – Jay

+0

是的,他們都安裝了,正如我所說的解決方案在Visual Studio 2008下編譯好。 – GargantuanTezMaximus

回答

0

58項目是很多!我會嘗試的第一件事是從解決方案中刪除其中的一些。知道你會得到關於引用你拿出的錯誤的其他錯誤,但是如果錯誤消失/停留,那麼你就可以更好地瞭解哪一個是你的問題孩子。

另一種方法可能是創建一個新的VS2010解決方案,然後逐個添加項目。 58個項目會給你帶來痛苦,我爲你感到愉快!