【发布时间】:2013-10-10 10:47:07
【问题描述】:
在编译一个从 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”。检查以确保程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。"
...我没有收到任何编译错误。
好奇者和好奇者。
【问题讨论】:
标签: visual-studio-2008 assemblies app-config versioning resx