我們有一個EpiServer模塊,用C#2.0編寫,我們正在繼續開發。如果我們對客戶瞭解的唯一信息是我們當前的模塊正常工作,那麼我們可以升級到哪個版本的C#仍然可以與客戶的當前運行時間一起工作?我們可以升級哪個C#版本,同時保持與C#2.0的運行時兼容性?
2
A
回答
9
2.0之後的所有版本的C#編譯器都可用於定位2.0 CLR/Runtime。這被稱爲關閉目標。編譯器只允許使用以前版本運行時支持的功能,並且如果您嘗試使用不是的功能,將會提供錯誤。例如,在定位2.0時使用動態。
0
3和3.5 shuold工作正常!
0
C#不是運行時;這是語言。您需要成爲非常明確您的意思。
靶向.NET 2.0:
您可以使用VS2008和C#3.0的目標.NET 2.0,包括使用所有的C#3.0語言特性,比如通過LINQ之類的東西LINQBridge。但是,您不應該無意中引用.NET 2.0 SP1運行時功能(TimeZoneInfo
?)或錯誤/「功能」,因此您應該測試實際的目標框架。
靶向C#2.0:
如果你想語言的兼容性,您可以在項目(禁用C#3.0的功能)設置此,但這又不是100% - 它會錯過一些東西像類型推理增強;以下是罰款在C#3.0,但不是C#2.0,但與ISO-2啓用編譯:
int[] arr = {1,2,3};
string[] arr2 = Array.ConvertAll(arr, delegate (int i) {return i.ToString();});
1
的CLR版本並沒有改變自2005年以來,它仍然是2.0版本。即將改變,4.0將在春季發佈。
你唯一需要考慮的就是你依賴的.NET程序集。像WPF,WCF和Linq這樣的東西如果你的客戶被困在.NET 2.0版本中,可能不太可能。您可以輕鬆避免在VS2008中創建這種依賴關係。項目+屬性,應用程序選項卡,目標框架組合。
相關問題
- 1. 升級Ruby版本和Rails兼容性
- 2. C#版本兼容性
- 3. 當升級傳統1.8客戶端以使用MongoDb 2.0 C#與通用框架時的兼容性問題
- 4. 從`docker`升級到`docker-ce`時,我可以保存我的運行容器嗎?
- 5. 相同主版本中的升級是否保證與設備兼容?
- 6. JVM運行時如何保持向後兼容性?
- 7. 哪個版本與哪個版本兼容? Spring和JSTL
- 8. 我們應該升級到哪個版本的gitlab?
- 9. 可以更改爲dll,同時保持與預編譯的可執行文件的兼容性?
- 10. 哪個Firefox版本與Selenium 2.53.0兼容?
- 11. Bundler與Rubygems 2.0不兼容。請升級到Bundler 1.3或更高版本
- 12. 哪個版本的Visual C++運行時庫是必需的?
- 13. 哪個版本的visual C++運行時庫
- 14. 是否可以同時運行兩個不同版本的tmux?
- 15. 哪裏可以找到與ASP.NET 3.5兼容的Sitefinity版本
- 16. .Net 2.0上的C#3.0兼容性
- 17. Ruby升級版本和代碼兼容性檢查器
- 18. 升級數據庫保持舊版本
- 19. 我們可以同時安裝多個模擬器版本嗎?
- 20. 升級到g ++ 4.7(支持C++ 11):任何ABI不兼容?
- 21. Visual C++ 2012可再發行版向後兼容2010版本嗎?
- 22. 哪些版本的Eclipse與哪些版本的Java兼容?
- 23. 如何設計我的Java/C#庫,以便在將來進行更改時保持二進制兼容性?
- 24. 哪個版本的dcmtk與gcc版本4.8.2兼容?
- 25. 運行時升級權限(Windows API C/C++)
- 26. 版本兼容性
- 27. 我在哪裏可以下載.NET MVC 2.0運行時?
- 28. 標準.Net 2 dll是否與silverlight 2.0運行時兼容?
- 29. 加載運行時CuDNN庫:5005(兼容版本5000),但源代碼與5103(兼容版本5100)編譯
- 30. 如何找出哪個memcache版本與PHP版本兼容?
但是,這仍然會迫使他最終使用C#2.0,不是嗎? – 2010-01-08 13:33:59
@Justin,根本沒有。您可以在2.0運行時使用C#3.0的幾乎所有功能。使用LINQ需要像LINQBridge這樣的輔助函數庫,但是一旦使用,就可以編寫完整的LINQ來查詢對象查詢。我所知道的唯一特徵是表達式樹,這是由於2.0RTM中的CLR問題。 – JaredPar 2010-01-08 13:36:05
@Justin,不,您可以繼續使用不需要運行時支持的新功能。例如,「var」關鍵字(類型推斷)就可以使用,因爲這完全是在編譯時完成的。 – Tobi 2010-01-08 13:36:11