Dot-Net
.NET 2.0 執行時上的 LINQ
啟用 LINQ 的應用程序能否在僅安裝了 .NET 2.0 執行時的機器上執行?
從理論上講,LINQ 只不過是語法糖,生成的 IL 程式碼應該與 .NET 2.0 中的程式碼相同。
如何在不使用 .NET 3.5 庫的情況下編寫 LINQ?它會在 .NET 2.0 上執行嗎?
有一些“黑客”涉及使用 3.5 框架中的 System.Core.dll 使其與 .net 2.0 一起執行,但我個人不希望使用這種有點不穩定的基礎。
請參閱此處:.NET 2.0 上的 LINQ 支持
- 創建一個新的控制台應用程序
- 僅保留 System 和 System.Core 作為引用的程序集
- 將 System.Core 的 Copy Local 設置為 true,因為它在 .NET 2.0 中不存在
- 在 Main 方法中使用 LINQ 查詢。比如下面這張。
- 建造
- 將所有 bin 輸出複製到僅安裝了 .NET 2.0 的機器上
- 跑步
(需要 .net 2.0 SP1,我不知道捆綁 System.Core.dll 是否違反 EULA)
奇怪的是沒有人提到LINQBridge。這個很棒的小項目是將 LINQ(IEnumerable,但沒有 IQueryable)及其依賴項(Func、Action 等)向後移植到 .NET 2.0。和:
如果您的項目在編譯期間引用了 LINQBridge,那麼它將綁定到 LINQBridge 的查詢運算符;如果它在編譯期間引用 System.Core,那麼它將綁定到 Framework 3.5 的查詢運算符。