#c# #sqlite #dll
#c# #sqlite #dll
Вопрос:
У меня есть функция, которой нужен ресурс dll
using (SQLiteConnection c = new SQLiteConnection("Data Source=logindata;Version=3;"))
{
}
для этого требуется: SQLite.Interop.dll
поэтому вместо того, чтобы помещать эту dll в ту же папку среды, я использую ее как встроенный ресурс :
[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)
РЕДАКТИРОВАТЬ: решается путем добавления всего нового класса в проект вместо ссылки на него как на ссылку на dll
Ответ №1:
Решаемая путем добавления всего нового класса Sqlite в мой проект вместо добавления его в мой проект в качестве ссылки.