C# — AssemblyResolve — библиотека отсутствуетC#

Место общения программистов 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... Заранее благодарим за любые советы.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»