如何将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的错误:应为类、委托、枚举、接口或结构感谢你们的帮助
如果您想从两个程序集中生成一个程序集,可以尝试ILMerge。
这最终会失败。System.Data.SQLite是SQLite.Interop.dll的PInvoke包装器,它是一个非托管dll,未在.net.