Приложение WPF,. NET Framework: 4.5.2., IO C контейнер: Unity
В моем приложении есть библиотека третьей части, у которой есть некоторые зависимости, которые я хочу загрузить во время выполнения, и я считаю, что после перезапуска приложения все должно работать правильно.
Все работает правильно, используя двоичные файлы из каталога сборки, но в развернутом приложении ClickOnce происходит сбой при загрузке представления, которое зависит от библиотеки после перезапуска.
Подробности:
При запуске приложения каждая библиотека преобразуется в bootstrap.
Следующий код отвечает за загрузку типов во время первый шаг (предотвращает невозможность загрузки сторонней библиотеки)
public static IEnumerable<Type> GetLoadableTypes(this Assembly assembly)
{
try
{
return assembly.GetTypes();
}
catch (ReflectionTypeLoadException e)
{
return e.Types.Where(t => t != null);
}
}
Я использую для проверки необходимости загрузки зависимостей третьей части:
try
{
Assembly.Load("3rdPartAssembly");
return true;
}
catch (FileNotFoundException)
{
return false;
}
3 Если возвращается true, пользователь может просматривать окно, использующее стороннюю библиотеку.