У меня возникла проблема при попытке использовать DirectoryModuleCatalog в Prism.Я использую Prism версии 6.3.0 с Unity в проекте WPF.
При попытке загрузить модуль выдает ошибку:
System.IO.FileNotFoundException: «Не удалось загрузить файл или сборку» System.Core, версия = 0.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089 'или одна из ее зависимостей.Система не может найти указанный файл. '
Интересно, когда я использую Costura.Fody для плетения всех сборок, кроме тех, которые я получил дополнительно от NuGet, все работает и модуль загружается.
На всякий случай вот несколько фрагментов кода
Модуль
[Module(ModuleName = "Usb2Usb")]
public class Usb2UsbModule : IModule
{
private IRegionManager _regionManager;
private IUnityContainer _container;
public Usb2UsbModule(IUnityContainer container, IRegionManager regionManager)
{
_container = container;
_regionManager = regionManager;
}
public void Initialize()
{
_regionManager.RegisterViewWithRegion(RegionNames.ToolbarRegion, typeof(TestButton));
_container.RegisterTypeForNavigation<Usb2UsbView>();
}
}
Bootstrapper - CreateModuleCatalog
protected override IModuleCatalog CreateModuleCatalog()
{
DirectoryInfo[] directoryInfoArray = new DrectoryInfo("Modules").GetDirectories("*.*", SearchOption.AllDirectories);
var directoryModuleCatalog = new DirectoryModuleCatalog();
foreach (DirectoryInfo directoryInfo in directoryInfoArray)
{
directoryModuleCatalog.ModulePath = directoryInfo.FullName;
}
return directoryModuleCatalog;
}
Скрипт пост-сборки
robocopy "$(TargetDir)\" "$(SolutionDir)ColoradoTime.Testing\$(OutDir)Modules\Usb2Usb" *.dll /purge
if %errorlevel% geq 8 exit 1
exit 0
Я могу продолжать использовать трюк Fody, но предпочел бы не вести список всех исключений DLL.Любые предложения с благодарностью.Спасибо!