C#在库DLL

时间:2017-07-06 09:31:51

标签: c# dll

我有以下问题:

我正在建立一个几乎没有非Windows依赖的图书馆。 我想制作dll,以便包含所有的dependecies,而不需要另外的dll与它一起。 我们的想法是只使用它将使用它的项目的新dll,而不是拥有这个新dll正在使用的所有dependecies。

我已经读过将它们作为资源包括在内但是它似乎无法按预期工作,使用此代码(我在类的静态构造函数中调用它需要依赖,所有依赖都在子文件夹lib中图书馆项目):

    internal static void Include()
    {
        if (!included)
            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
            {
                String resourceName = "namespaceOfTheLibrary" + ".lib." + new AssemblyName(args.Name).Name + ".dll";

                using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
                {
                    Byte[] assemblyData = new Byte[stream.Length];

                    stream.Read(assemblyData, 0, assemblyData.Length);

                    return Assembly.Load(assemblyData);
                }
            };

        included = true;
    }

为了在许多项目中保持代码更新而不忘记任何依赖,这将非常有用。

希望有可能。

由于

0 个答案:

没有答案