vmime.NET na Windows 11

0

Witam.
Mam napisane proste wysyłanie maili z wykorzystaniem kontrolki vmime.NET_4.dll w aplikacji WPF napisanej pod framework 4.8.
Problem pojawił się na niektórych komputerach z Windowsem 11. Otóż przy próbie załadowania kontrolki pojawia się błąd:
"Nie można załadować pliku lub zestawu 'vmime.NET_4.dll' lub jednej z jego zależności. Nie można odnaleźć określonego modułu."
Na komputerach z Windowsem 10 i 7 wystarczyło zainstalować pakiet vcredist.exe i problem znikał. Ale na 11 to nie pomaga.

Kontrolka wykorzystuje dwa pliki: vmime.NET_4.dll oraz libgsasl-7.dll. Obydwa pliki są w folderze projektu.
W artykule na podstawie którego pisałem moje wysyłanie:
https://www.codeproject.com/Articles/719490/vmime-NET-Smtp-Pop-Imap-Library-for-Cplusplus-and
jest napisane że wszystkie wymagane pliki są zaszyte w tych dwóch plikach. Ale z komunikatu wychodzi że niekoniecznie. Instalowałem już najnowszy pakiet vcredist_x64.exe ale to nie pomogło. Próbowałem również podgrywać do folderu aplikacji pliki opisane w powyższym artykule ale to również nic nie zmieniło.
Windows 11 jest aktualny, ma pobrane wszystkie aktualizacje.
Dziwne jest to że na niektórych Windowsach 11 to działa a na niektórych pojawia się taki błąd. Tak jakby dll'ka nie miała dostępu do jakichś plików. Pytanie tylko do jakich? Nie znalazłem żadnej dokumentacji, która by jawnie opisywała czego wymaga ta dll'ka.
Próbowałem też uruchamiać aplikację w trybie administratora ale również nie pomogło. Doinstalowałem wszystkie opcje systemu dotyczące frameworka i ten sam efekt.

Czy ktoś może spotkał się już z takim problemem?
Gdzie szukać przyczyny tego błędu?

0

W jednym z punktów jest napisane:
The openssl Dlls themself are dependent of the VC++ runtime 2008 (Msvcr90.dll).

I niżej cała sekcja pod tytułem VC++ runtime installer

ATTENTION:
If these DLL's are not installed on the target machine the user will NOT get an intelligent error message telling him what is wrong. Instead Microsoft .NET throws the most stupid exceptions like: "vmime.NET.dll or one of its dependencies could not be loaded" or "System.IO.FileLoadException:....This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem". The users of your application will never suspect that the cause is a missing MsVcXX.dll!

There are 2 ways to assure that the MsVcr/MsVcp/MsVcm DLLs exist on the target computer:

The users of your application must download and install the correct version of the Visual C++ Redistributable Package (see download links in table above). The files will be installed "side by side" into C:\Windows\WinSxS\Cryptic Folder.
Or you install the following files directly into the application folder as private assemblies: Microsoft.VCXX.CRT.manifest, msvcrXX.dll, msvcpXX.dll, msvcmXX.dll. You find these files in your Visual Studio folder under VC\Redist. The versions of these DLLs must be EXACTLY the same as those in the manifest compiled into vmime.NET.dll. You can read the following articles in the MSDN: Private Assemblies and Assembly Searching Sequence but probably you will get quite confused.

Moim zdaniem potrzebujesz konkretnego VCRedist, a nie najnowszego. A działa na innych Win11, ponieważ (może) ktoś kiedyś już do czegoś instalował wersje 2008 i dlatego działa. Przeważnie VCRedist się instalowało do grania, nie wiem jak teraz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1