C# — AssemblyResolve — библиотека отсутствует ⇐ C#
-
Гость
C# — AssemblyResolve — библиотека отсутствует
Я работаю с полнофункциональным кодом загрузки библиотеки с помощью AssemblyResolve.
общедоступный частичный класс Приложение: Приложение { общедоступное приложение() { пытаться { AppDomain.CurrentDomain.AssemblyResolve += ResolveLibraryFromConfigPath; } поймать (исключение ex) { Регистратор($"{ex}"); } } // Получаем библиотеку по сохраненному пользователем пути общедоступная статическая сборка OnResolve (отправитель объекта, аргументы ResolveEventArgs) { вар путь = Settings.GetLibUserPath(); ... вернуть Assembly.LoadFrom(путь); } Но проблема в том, что приложение предназначено для работы на ПК, где отсутствует конкретная библиотека (этап настройки температуры). Конечно, функции библиотеки не будут выполняться до тех пор, пока пользователь не сохранит путь к библиотеке в конфигурации приложения, а затем не перезапустит приложение для загрузки сборки.
Мой вопрос.
Можно ли запустить приложение с помощью метода *AssemblyResolve *загрузки библиотеки, описанного выше, даже если библиотека не представлена на хост-компьютере (пропустить загрузку), за исключением того, что библиотека отсутствует?
Я использую параметр Copy local - false в ссылочных свойствах, поскольку библиотека зависит от версии (userVersion1.dll, userVersion2.dll, ...).
В настоящее время я запускаю приложение, и путь к библиотеке не сохраняется в конфигурации (стандартно такая ситуация может возникнуть на хост-компьютере при первом запуске приложения и этапе настройки).
System.IO.FileNotFoundException: невозможно найти userVersion.dll... Заранее благодарим за любые советы.
Я работаю с полнофункциональным кодом загрузки библиотеки с помощью AssemblyResolve.
общедоступный частичный класс Приложение: Приложение { общедоступное приложение() { пытаться { AppDomain.CurrentDomain.AssemblyResolve += ResolveLibraryFromConfigPath; } поймать (исключение ex) { Регистратор($"{ex}"); } } // Получаем библиотеку по сохраненному пользователем пути общедоступная статическая сборка OnResolve (отправитель объекта, аргументы ResolveEventArgs) { вар путь = Settings.GetLibUserPath(); ... вернуть Assembly.LoadFrom(путь); } Но проблема в том, что приложение предназначено для работы на ПК, где отсутствует конкретная библиотека (этап настройки температуры). Конечно, функции библиотеки не будут выполняться до тех пор, пока пользователь не сохранит путь к библиотеке в конфигурации приложения, а затем не перезапустит приложение для загрузки сборки.
Мой вопрос.
Можно ли запустить приложение с помощью метода *AssemblyResolve *загрузки библиотеки, описанного выше, даже если библиотека не представлена на хост-компьютере (пропустить загрузку), за исключением того, что библиотека отсутствует?
Я использую параметр Copy local - false в ссылочных свойствах, поскольку библиотека зависит от версии (userVersion1.dll, userVersion2.dll, ...).
В настоящее время я запускаю приложение, и путь к библиотеке не сохраняется в конфигурации (стандартно такая ситуация может возникнуть на хост-компьютере при первом запуске приложения и этапе настройки).
System.IO.FileNotFoundException: невозможно найти userVersion.dll... Заранее благодарим за любые советы.
Мобильная версия