簡體   English   中英

如何將System.Data.SQLite.dll嵌入我的類庫?

[英]How to embed System.Data.SQLite.dll to my Class Library?

我正在為SQLite構建類庫,當我構建項目時,System.Data.SQLite.dll作為一個獨立的dll文件出現,我需要將其與類庫合並到一個單獨的dll文件中,並添加了System.Data。然后將.SQLite.dll作為資源添加/現有項,然后將其添加為嵌入式資源

然后我將這個靜態承包商放在我的命名空間的開頭

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中解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM