Все выглядит нормально, кроме одного: в .NET Framework мы использовали значение
в файле app.exe.config, и оно работало отлично. Мы могли бы удалить все сторонние библиотеки из этой папки и очистить наш основной каталог.
Но в новой .NET 10 это доставляет массу хлопот. Я хотел разрешить путь проверки с помощью кода
Код: Выделить всё
AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve,
AppDomain.CurrentDomain.AssemblyResolve,
AppDomain.CurrentDomain.TypeResolve,
AssemblyLoadContext.Default.Resolving
Небольшой пример кода:
Код: Выделить всё
static Program()
{
MessageBox.Show("Start");
AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += CurrentDomain_ReflectionOnlyAssemblyResolve;
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
AppDomain.CurrentDomain.TypeResolve += CurrentDomain_TypeResolve;
AssemblyLoadContext.Default.Resolving += Default_Resolving;
}
[STAThread]
static void Main()
{
InitApp();
Application.Run(new frmMain());
}
Код: Выделить всё
MessageBox.Show("Start")Поэтому у меня происходит тихий сбой приложения и следующее сообщение в журнале событий:

Это происходит, даже если функция Main() совершенно пуста.
Такое ощущение, что dotnet пытается загрузите все указанные dll ПЕРЕД фактическим запуском приложения:

В то же время все работает нормально, если я нахожу все связанные DLL в папке приложения.
Также AppDomain.CurrentDomain.AssemblyResolve работает отлично в проект Dll, перенесенный с .NET 4.6 на .NET 10, мы вызываем эту dll через COM-взаимодействие из файла MFC Exe. В этом случае AssemblyResolve срабатывает для каждой ссылки.
Я пытался использовать дополнительныеProbingPaths (безуспешно).
Код: Выделить всё
"runtimeOptions": {
"framework": {
"name": "Microsoft.NETCore.App",
"version": "2.0.0"
},
"additionalProbingPaths": ["./Lib/AppDlls"]
}
Я пытался использовать PROBING_PATH в конфигурации среды выполнения.
В журнале трассировки я вижу, что dotnet пытается найти библиотеки DLL только в моей корневой папке:

Ребята, я понятия не имею, что еще делать. Надеюсь, вы мне что-нибудь посоветуете.
Спасибо большое.
Подробнее здесь: https://stackoverflow.com/questions/798 ... bdirectory
Мобильная версия