diff --git a/src/ElectronicPharmacy/Classes/AppConfig.cs b/src/ElectronicPharmacy/Classes/AppConfig.cs
index 52affaa..195d2f1 100644
--- a/src/ElectronicPharmacy/Classes/AppConfig.cs
+++ b/src/ElectronicPharmacy/Classes/AppConfig.cs
@@ -129,7 +129,7 @@ namespace Электронная_Фармация.Classes
private static void EnsureSQLiteInteropInBaseDir()
{
// System.Data.SQLite ожидает SQLite.Interop.dll рядом с exe.
- // В релизной поставке DLL часто лежит в подпапках x86/x64.
+ // Важно: разрядность DLL должна совпадать с процессом (Prefer32Bit => x86).
if (_sqliteInteropPrepared)
{
return;
@@ -144,13 +144,6 @@ namespace Электронная_Фармация.Classes
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
var targetDll = Path.Combine(baseDir, "SQLite.Interop.dll");
- if (File.Exists(targetDll))
- {
- _sqliteInteropPrepared = true;
- return;
- }
-
- // AnyCPU в .NET Framework обычно выбирает разрядность процесса автоматически.
var archFolder = Environment.Is64BitProcess ? "x64" : "x86";
var sourceDll = Path.Combine(baseDir, archFolder, "SQLite.Interop.dll");
var sourcePdb = Path.Combine(baseDir, archFolder, "SQLite.Interop.pdb");
@@ -159,7 +152,7 @@ namespace Электронная_Фармация.Classes
{
if (File.Exists(sourceDll))
{
- Directory.CreateDirectory(baseDir);
+ // Всегда подкладываем DLL нужной разрядности (даже если в корне уже лежит "чужая").
File.Copy(sourceDll, targetDll, overwrite: true);
var targetPdb = Path.Combine(baseDir, "SQLite.Interop.pdb");
diff --git a/src/ElectronicPharmacy/ElectronicPharmacy.csproj b/src/ElectronicPharmacy/ElectronicPharmacy.csproj
index 3ddadbc..46400ed 100644
--- a/src/ElectronicPharmacy/ElectronicPharmacy.csproj
+++ b/src/ElectronicPharmacy/ElectronicPharmacy.csproj
@@ -20,6 +20,7 @@
AnyCPU
+ false
true
full
false
@@ -30,6 +31,7 @@
AnyCPU
+ false
pdbonly
true
bin\Release\