动态调用任意.Net版本的程序集

| 我可以从较低.Net版本的程序集动态调用较高.Net版本的程序集吗?也许我应该使用嵌入式DLR语言(Iron Python)?     
已邀请:
        程序集没有.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应用程序中加载.net 3.5 wpf表单 或在代码中:
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版本信息。     

要回复问题请先登录注册