sqlceme40.dll за что отвечает?
Сразу скажу, что я не программист, но кое-что в этом понимаю. Есть программа, не моя, авторская, которую наша фирма использует для своих целях. После обновления призошла проблема: после рестарта программа повторно не запускается. Повторный запуск возможен, если принудительно заменить sqlceme40.dll в папке с программой. Как я понимаю, это файл SQL Server Compact Edition 4 версии. Так как у нас нет исходного кода, не могу сказать что присходит. Через dnSpy-net-win32 сделал дебаг программы. Прилагаю часть где возникает ошибка:
// Token: 0x06000400 RID: 1024 RVA: 0x000181B0 File Offset: 0x000163B0
[SecurityCritical]
[SecurityTreatAsSafe]
public static bool IsValidBinary(string filename)
{
bool flag = HashProvider.MatchHash(filename);
if (!flag)
{
throw SqlCeException.CreateException(string.Format(Res.GetString("SQLCE_NativeBinaryIsNotProper"), "sqlceme40.dll"));
}
return flag;
}
// Token: 0x06000401 RID: 1025 RVA: 0x000181E4 File Offset: 0x000163E4
private static void ThrowIfNativeLibraryNotLoaded()
{
if (NativeMethods.NativeMethodsHelper == null)
{
throw SqlCeException.CreateException(Res.GetString("SQLCE_NativeEngineNotLoaded"));
}
}
именно в строке throw SqlCeException.CreateException(Res.GetString("SQLCE_NativeEngineNotLoaded")); присходит ошибка.
Извиняюсь, если возможно не очень конкретно объяснил проблему. Программисты отказываюся верить, что проблемма программная.
Пока я написал скрипт, который заменяет sqlceme40.dll до запуска программы, это дало возможность использовать программу. Заранее спасибо!