2013-03-22 76 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

相關問題