我可以動態地從較低的.Net版本的程序集調用更高.Net版本的程序集嗎?也許我應該使用嵌入式DLR語言(Iron Python)?任意.Net版本程序集的動態調用
回答
當然,你可以,這個問題應該幫助你前進的道路:
Loading .net 3.5 wpf-forms in a .net 2.0 application
或者代碼:
Dim dllPath As String = "C:\ProjectsTest\TestSolution\ActiveXUser\bin\Debug\TestControl.dll"
If Not File.Exists(dllPath) Then
Return
End If
Dim loadedAssembly As [Assembly] = [Assembly].LoadFile(dllPath)
Dim mytypes As Type() = loadedAssembly.GetTypes()
Dim t As Type = mytypes(1)
Dim obj As [Object] = Activator.CreateInstance(t)
TestControl.dll可以包含所有已安裝的.NET版本信息。
程序集沒有.NET版本,它有一個元數據版本。忽略早期的人,野外有三種不同的人。分別使用.NET 1.1,.NET 2.0和.NET 4發佈的版本。中間版本(2.0和3.5 SP1之間的任何內容)使用版本2.0元數據格式。或者換句話說,CLR版本纔是真正重要的東西。這就是爲什麼@ Barfieldmv的代碼可以工作,.NET 2.0和.NET 3.5使用相同的CLR版本。在今天更爲典型的問題上,氣體用完了,CLR版本2無法加載具有版本4元數據的程序集。您需要必須與版本4 CLR一起運行程序。這需要一個覆蓋將要使用的CLR版本的app.exe.config文件。它應該看起來像這樣:
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
很好的答案!但是,你能否提示我,是否可以使用某些腳本引擎從.Net 2.0/3.5程序集調用.Net 4程序集? – macropas 2011-06-15 11:08:18
不,程序中只能有一個版本的CLR。版本4 CLR對這個限制有一些解決方法,但是如果你已經加載了CLR,那麼你就不會有這個問題。 – 2011-06-15 11:17:39
- 1. .NET程序集版本
- 2. 使用版本化的.Net程序集
- 3. 使用動態關鍵字從.net 4代碼調用將來的.net版本程序集?
- 4. 製作TeamCity版本匹配.NET程序集版本
- 5. 在Visual Studio .NET中調試動態加載的程序集
- 6. .NET版本號(安裝程序版本)
- 7. 從GAC動態加載最新的程序集版本
- 8. 動態加載導致版本控制錯誤的程序集
- 9. 使用64位與32位程序集的.NET版本
- 10. .net運行時試圖使用程序集的錯誤版本
- 11. .net揀選錯誤的引用程序集版本
- 12. C#中引用的程序集什麼是.NET版本?
- 13. .NET 4.0和.NET 4.5程序集版本衝突
- 14. 在已編譯的.NET程序集中更改程序集版本
- 15. 在SSIS 2005的腳本任務中引用.net 3.5程序集?
- 16. 錯誤CS1705:程序集使用'System.Web.Mvc,版本= 5.2.3.0',它的版本高於引用的程序集版本
- 17. 如何在Windows Vista和更新版本(Windows 7,2008)中查看.NET程序集的程序集版本?
- 18. 如何修復引用舊版(測試版).NET的程序集?
- 19. .NET應用程序版本顯示
- 20. 檢查.Net應用程序版本
- 21. 在Xamarin中構建發行版本的應用程序時,「鏈接程序集」任務意外發生問題
- 22. 「無法啓動程序」(調試版本)
- 23. 如何動態加載引用不同版本的相同程序集的DLL?
- 24. 檢測同一.NET程序集的不同版本
- 25. 如何獲得構建程序集的.NET版本(1.1,2.0,3.0等)?
- 26. 如何從Wix 3.5中設置.NET dll的程序集版本?
- 27. 取消註冊.net程序集的舊版本
- 28. 比較.NET程序集的2個版本?
- 29. .NET程序集綁定,我可以將程序集映射到另一個程序集中的版本?
- 30. 如何使用任何程序集版本
以及如何從該對象調用任意方法(例如靜態方法)? – macropas 2011-06-15 10:13:30
通過反射或共享接口。 – CodingBarfield 2011-06-15 10:46:50