.NET (WPF) DllNotFoundException Натрий Windows 10

Я написал приложение.NET WPF для.NET 4.7.1. Мое приложение отлично работает на моем компьютере с Windows 7, но когда я пытаюсь запустить приложение на компьютере с Windows 10, я получаю следующую ошибку. (Извините, это на голландском, такая приятная особенность Microsoft для перевода исключений)

Logboeknaam:   Application
Bron:          .NET Runtime
Datum:         12-7-2018 14:01:45
Gebeurtenis-id:1026
Taakcategorie: Geen
Niveau:        Fout
Trefwoorden:   Klassiek
Gebruiker:     n.v.t.
Computer:      ****
Beschrijving:

Toepassing: MeetWeeg.exe

Framework-versie: v4.0.30319

Beschrijving: het proces is beëindigd als gevolg van een onverwerkte uitzondering.

Uitzonderingsinformatie: System.DllNotFoundException

   bij DynamicDllInvokeType.sodium_init()    
   bij Sodium.SodiumCore.Init()    
   bij Sodium.SodiumCore..cctor()   

Uitzonderingsinformatie: System.TypeInitializationException

   bij Sodium.SodiumCore.Init()
   bij Sodium.PasswordHash.ScryptHashBinary(Byte[], Byte[], Int64, Int32, Int64)    
   bij Sodium.PasswordHash.ScryptHashBinary(Byte[], Byte[], Strength, Int64)    
   bij Sodium.PasswordHash.ScryptHashBinary(System.String, System.String, Strength, Int64)    
   bij MeetWeeg.QCore.Hashing.GenHash(System.String, System.String)    
   bij MeetWeeg.InternalDb.LocalDbContextInitializer.Seed(MeetWeeg.InternalDb.LocalDbContext)    
   bij SQLite.CodeFirst.SqliteInitializerBase`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InitializeDatabase(System.__Canon)    
   bij SQLite.CodeFirst.SqliteDropCreateDatabaseWhenModelChanges`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InitializeDatabase(System.__Canon)    
   bij System.Data.Entity.Internal.InternalContext+<>c__DisplayClassf`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<CreateInitializationAction>b__e()    
   bij System.Data.Entity.Internal.InternalContext.PerformInitializationAction(System.Action)
   bij System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()    
   bij System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(System.Data.Entity.Internal.InternalContext)    
   bij System.Data.Entity.Internal.RetryAction`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].PerformAction(System.__Canon)    
   bij System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(System.Action`1<System.Data.Entity.Internal.InternalContext>)
   bij System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
   bij System.Data.Entity.Internal.InternalContext.Initialize()
   bij System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(System.Type)
   bij System.Data.Entity.Internal.Linq.InternalSet`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Initialize()
   bij System.Data.Entity.Internal.Linq.InternalSet`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetEnumerator()
   bij System.Data.Entity.Infrastructure.DbQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()    
   bij System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]..ctor(System.Collections.Generic.IEnumerable`1<System.__Canon>)
   bij System.Linq.Enumerable.ToList[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
   bij MeetWeeg.ViewModel.UsersViewModel..ctor()
   bij MeetWeeg.ViewModel.ApplicationViewModel..ctor()
   bij MeetWeeg.App..ctor()
   bij MeetWeeg.App.Main()

Я нашел это решение при переполнении стека, поэтому я попытался добавить этот код в конструктор моей модели приложения, но, похоже, это не сработало.

// Make it possible to load unmanaged libsodium DLLs that .NET does not make shadow copies of.
// -> Simply point the "path" variable to the Bin directory.
string path = Environment.GetEnvironmentVariable("PATH");
string binDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Bin");
Environment.SetEnvironmentVariable("PATH", path + ";" + binDir);

Кто-нибудь знает, в чем может быть проблема? Я запускаю свое приложение от имени администратора.

0 ответов

Другие вопросы по тегам