如何将System.Data.SQLite.dll嵌入到我的类库中

本文关键字:我的 类库 dll System Data SQLite | 更新日期: 2023-09-27 17:58:09

我正在为SQLite构建类库,当我构建项目时,System.Data.SQLite.dll是一个独立的dll文件,我需要将它与我的类库合并到一个dll文件中我添加了System.Data.SQLite.dll作为资源,然后添加/existing项,然后将其添加为嵌入式资源

然后我把这个静态构造函数放在我的名称空间的开头

static SimpleClass()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
    {
        if (new AssemblyName(args.Name).Name.ToLowerInvariant() == "System.Data.SQLite")
        {
            String resourceName = "SQLlite." + 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);
            }
        }
        else
        {
            return null;
        }
    };
}

这给了我类似错误CS1518的错误:应为类、委托、枚举、接口或结构感谢你们的帮助

如何将System.Data.SQLite.dll嵌入到我的类库中

如果您想从两个程序集中生成一个程序集,可以尝试ILMerge。

这最终会失败。System.Data.SQLite是SQLite.Interop.dll的PInvoke包装器,它是一个非托管dll,未在.net.

中解析