将VS 2008(c#)解决方案转换为VS 2010后出现错误/警告

5
我们有一个包含58个项目的Visual Studio 2008解决方案。其中一个项目使用3.5运行时,而其他57个项目则使用3.0。在Visual Studio 2010中打开该解决方案并通过升级项目向导进行操作。在提示时,我拒绝将目标版本设置为4.0,并坚持使用当前选择的运行时。转换完成后没有出现任何错误。
尝试构建项目时,出现了大量以下两个警告:
“无法解析主引用项[AssemblyX],因为它间接依赖于.NET Framework程序集“CrystalDecisions.Enterprise.Framework,Version=11.5.3300.0,Culture=neutral,PublicKeyToken=692fbea5521e1304”,其版本高于当前目标框架中的版本“10.5.3700.0”。
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets

“无法解析主引用项[AssemblyY],因为它间接依赖于.NET Framework程序集“mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”,其版本高于当前目标框架中的版本“2.0.0.0”。
C:\WINDOWS\Microsoft.NET\Framework\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://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 非常感谢任何帮助!谢谢!

你正在使用的机器上安装了3.0和3.5框架版本吗? - Jay
是的,它们都已安装,正如我所说的,在Visual Studio 2008下,该解决方案编译良好。 - GargantuanTezMaximus
2个回答


0

58个项目真的很多!我建议你首先尝试从解决方案中删除其中一些。当然,你会遇到其他关于引用已删除项目的错误,但如果这些错误消失/保留,则可以更好地确定哪一个是问题所在。

另一种方法可能是创建一个新的VS2010解决方案,然后逐个添加项目。58个项目肯定会让你头疼,我为你感到难过!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接