在编译一个从 VS2003 中的 .NET 1.1 移植到 VS2008 中的 .NET 3.5 的解决方案时,我得到了几个建议,其中这个具有代表性:
考虑将程序集 "System.Windows.Forms, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" 从版本 "1.0.5000.0" [] 重新映射到版本 "2.0.0.0" [C:\Program Files (x86 )\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\System.Windows.Forms.dll] 来解决冲突并摆脱警告。
解决方案中的两个项目都没有 app.config 文件。但是,有数以万计的 *.resx 文件包含“Version=1.0.5000.0”
我应该使用“Version = 2.0.0.0”进行全局搜索和替换,还是应该如何纠正这个问题?
更新
我选择了“项目>升级项目”,重新构建,现在消息包括:
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets:警告 MSB3245:无法解析此引用。找不到程序集“System.Windows.Forms.DataGrid”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。
无法解决“System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes”和“System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”之间的冲突。任意选择“System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes”。
无法解决“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes”和“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”之间的冲突。任意选择“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes”。
考虑将程序集 "System.Windows.Forms, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" 从版本 "1.0.5000.0" [] 重新映射到版本 "3.5.0.0" [C:\Program Files (x86 )\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.Windows.Forms.dll] 来解决冲突并摆脱警告。
更新 2
我的代码中确实有这一行:
this.dtGridUPC = new System.Windows.Forms.DataGrid();
尽管编译器警告我:“找不到程序集“System.Windows.Forms.DataGrid”。检查以确保程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。 "
...我没有编译错误。
越来越好奇。