2016-10-06 3 views
1

У меня есть функция, которая потребуется библиотека ресурсыC# Код ресурс дллы

using (SQLiteConnection c = new SQLiteConnection("Data Source=logindata;Version=3;")) 
    { 
    } 

это требует: SQLite.Interop.dll

так вместо того, чтобы этот DLL в ту же папке Enviroment я использую это как внедренный ресурс:

[STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; 
      Application.Run(new Form1()); 
     } 

     private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) 
     { 
      using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("EmbedAssembly.SQLite.Interop.dll")) 
      { 
       byte[] Data = new byte[stream.Length]; 
       stream.Read(Data, 0, Data.Length); 
       return Assembly.Load(Data); 

      } 
     } 

Но это еще кинуть исключение:

Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

EDIT: решаемый путем добавления нового класса в проект вместо отсылая к нему в качестве ссылки длл

ответ

0

решаемого путем добавления всего нового SQLITE класса для моего проекта вместо того, чтобы добавить его в своем проекте как ссылка.

Смежные вопросы