wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.net – 是否有可能在类中具有版本无关的DLL引用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想创建一个编译成单个DLL的类。该DLL将为现有产品添加功能。 为了使这个工作,定制类引用底层产品中包含的DLL。这些引用是需要编译的。 一切都可以正常运行,并且自定义类编译。我可以将生成的DLL放入产品中,一切正常。 但是,该产品有几个版本(次要版本,服务包)。我想将这个DLL分发给其他人,但我发现DLL必须完全符合产品的版本。如果没有完美匹配,则会出现以下错误: Could not load
我想创建一个编译成单个DLL的类。该DLL将为现有产品添加功能

为了使这个工作,定制类引用底层产品中包含的DLL。这些引用是需要编译的。

一切都可以正常运行,并且自定义类编译。我可以将生成的DLL放入产品中,一切正常。

但是,该产品有几个版本(次要版本,服务包)。我想将这个DLL分发给其他人,但我发现DLL必须完全符合产品的版本。如果没有完美匹配,则会出现以下错误

如何生成一个不挑剔版本参的DLL?

这是一个很好的解决方案。它为我解决了类似的问题。

Compile a version agnostic DLL in .NET

万一链接死机,关键是处理AppDomain.CurrentDomain.AssemblyResolve事件,如下所示。事件会在程序集绑定失败时触发,因此您可以自己解决问题,修复版本冲突。

using System.Reflection;

static Program()
{
    AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender,ResolveEventArgs E)
    {
        AssemblyName requestedName = new AssemblyName(e.Name);

        if (requestedName.Name == "Office11Wrapper")
        {
            // Put code here to load whatever version of the assembly you actually have

            return Assembly.LoadFile("Office11Wrapper.DLL");
        }
        else
        {
            return null;
        }
    }
}

大佬总结

以上是大佬教程为你收集整理的.net – 是否有可能在类中具有版本无关的DLL引用?全部内容,希望文章能够帮你解决.net – 是否有可能在类中具有版本无关的DLL引用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。