2013-03-22 99 views
2

我的项目从4.0降级到.NET Framework的2.0版本。但是它包含了很多使用LINQ To Objects和LINQ To XML的代码(我使用了很多XElement对象)。当我将来自.NET Framework 3.5的库包含到我的项目中时,会添加System.Core.dllSystem.Xml.Linq.dll库,这将添加必要的功能并解决问题。在基于.NET Framework 2.0的项目中使用.NET Framework 3.5库以添加LINQ To XML功能

但是这里有两个问题:

  1. 是否有此解决方案的任何缺点?
  2. 我可以使用.NET的两个包含的库在商业基础上分发我的程序吗 Framework 3.5?如果我打破使用和分发.NET Framework的许可证会怎么样?
+0

.NET许可证说,.NET框架是许可操作系统的免费补充。 – Alex 2013-03-22 07:37:30

+1

“我的项目从4.0降级到2.0版本的.NET Framework”,所以你回到了时间,我从来没有听说过这个转变为什么 – TalentTuner 2013-03-22 07:38:44

+0

这听起来不像它应该工作。你在只有.NET 2.0的机器上试过应用程序? (未安装3.5或4) – 2013-03-22 07:45:21

回答

0

我认为System.Core使用可能意味着你遇到了一些麻烦(如果只从易怒的角度来看 - IANAL所以不会对任何形式的分配问题作出评论)....

作为例如(我没有具体的证据,只是提出假设)你有System.Core的.NET 3.5版本,并且有一个.NET 2.0程序集使用System.Core中的类,但它有一个摇摆不定的因为它不是系统.Core程序集与.NET 2.0一起提供,可能不会以相同的方式进行......或者相反,3.5 System.Core中的某些内容预计在.NET 3.5中修改的另一个程序集会以某种方式做某些事情或提供某些功能,但.NET 2.0的版本装配不;这听起来像是你可能会投入很多时间进行调试/故障排除/诊断/头部撞击的情况。

这就是说,似乎人们已经得到它的工作here和一些以前的SO问题herehere。在这些链接中也可能会有一些有用的评论来帮助你。还有一些链接,人们似乎被同样的东西激励(使用.NET 2.0上的LINQ)herehere。还有一些使用Mono程序集的实现方式here

这是其中一件事情,如果你只是想将组件套在你想要的(只是我的意见)投入相当多的时间在测试中就不可预测的结果出现,减少您的风险。如你所知,2.0和3.5之间没有单独的运行时间(与2.0 - > 4.0不同),所以使用这个事实你可以得到最新的3.5安装在你的应用程序将部署的每台目标机器上(在WinForms/WPF应用程序的桌面上,或者在服务器上用于基于网络的东西),并且在Visual Studio中开发时只是作为您的.NET版本的版本号为target?这会让事情变得更安全一些,我认为你实际上将一个Framework版本作为开发工作的一部分,而不仅仅是交换一组程序集。

+0

只是为了澄清 - System.Core.dll从未在.NET 2.0中存在 – RBT 2016-10-10 08:12:44

相关问题