我们有一个包含58个项目的Visual Studio 2008解决方案。一个项目针对3.5运行时,而另一个项目针对3.0。该解决方案在Visual Studio 2008中构建良好。我在Visual Studio 2010中打开解决方案并继续执行升级项目向导。出现提示时,我拒绝定位4.0运行时并坚持使用当前选定的运行时。转换完成后没有错误。
尝试构建时,我收到大量以下两个警告:
“无法解析主要参考[AssemblyX],因为它与.NET Framework程序集间接依赖”CrystalDecisions.Enterprise.Framework,Version = 11.5.3300.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304“ ,其版本“11.5.3300.0”高于当前目标框架中的版本“10.5.3700.0”。
C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets“
和
“无法解析主要参考[AssemblyY],因为它对.NET Framework程序集”mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089“具有更高的间接依赖性版本“4.0.0.0”,而不是当前目标框架中的版本“2.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的内容。
我在互联网上搜索解决方案/讨论,但我发现的解决方法似乎都不适用于我。
http://social.msdn.microsoft.com/Forums/en/msbuild/thread/516647ee-dccf-49ee-959a-00b1fc098eeb
http://arstechnica.com/civis/viewtopic.php?f=20&t=1112439
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
58项目很多!我要尝试的第一件事就是从解决方案中删除其中一些。知道你会得到关于你引用的那些错误的其他错误,但是如果那个错误消失了/那么你就会更好地了解哪个是你的问题孩子。
另一种方法可能是创建一个新的VS2010解决方案,然后逐个添加项目。 58个项目会让你感到痛苦,我觉得你呢!