如何加载旧版本的.NET程序集?

Cra*_*aig 7 .net c#

我有一个引用.NET 4.0程序集的WPF/C#应用程序.但是,在应用程序中是一个文本编辑器,需要显示与.NET 3.5程序集绑定的C#intellisense.因此,我希望能够在运行时加载适当的.NET 3.5程序集.但是,当我尝试使用时:

Assembly.Load()
Assembly.LoadFile()
Assembly.LoadFrom()
Run Code Online (Sandbox Code Playgroud)

我总是从GAC获得最新版本.阅读他们的MSDN页面,看起来不幸的是设计.

我试着在这个堆栈溢出帖子中遵循提出的解决方案.但是,链接的网页解决方案不起作用,远程处理过程似乎有点矫枉过正.有没有人知道在运行时加载旧.NET程序集的更好和/或更简单的方法?

Jea*_*nal 1

默认情况下,您无法在 .NET Framework 版本 4 上加载为早期版本的 .NET Framework 制作的程序集。

但是,有一个配置属性允许这样做:http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx

将以下行放入您的 app.config 文件中:

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true|false" > 
    </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

默认情况下此功能未激活是有原因的,但我相信它应该适合您的使用。