Когда мое модульное приложение Prism 6 WPF, использующее Unity, начинается с «Prism.Modularity.ModuleTypeLoadingException» в Prism.Wpf.dll бросается. Ниже снимок экрана, за исключением:'Prism.Modularity.ModuleTypeLoadingException' в Prism.Wpf.dll вызывается при запуске приложения Prism 6 WPF
Как вы можете видеть исключение кидает, когда метод Bootstrepper.Run называется. Ниже приведен код Botstrapper:
namespace FlowmeterConfigurator
{
class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
protected override IModuleCatalog CreateModuleCatalog()
{
return new ConfigurationModuleCatalog();
}
}
}
Решение моего приложения состоит из трех проектов: основной проект WPF создан с Prism шаблона пакета, как Prism Unity App и двух модулей, каждый из которых создан с Prism шаблона пакета, как Модуль призмы. Оба модуля регистрируются в App.config файле, пожалуйста, смотрите ниже:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="modules" type="Prism.Modularity.ModulesConfigurationSection, Prism.Wpf"/>
</configSections>
<modules>
<module assemblyFile="Authorization.dll" moduleType="Authorization.AuthorizationModule, Authorization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="AuthorizationModule" startupLoaded="true" />
<module assemblyFile="Calibration.dll" moduleType="Calibration.CalibrationModule, Calibration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="CalibrationModule" startupLoaded="true" />
</modules>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
Первый модуль называется санкционирования и его класс caled AuthorizationModule:
namespace Authorization
{
[Module(ModuleName = "AuthorizationModule", OnDemand = false)]
public class AuthorizationModule : IModule
{
. . . . .
}
}
Второй модуль называется калибровки и его класс называется CalibrationModule:
namespace Calibration
{
[Module(ModuleName = "CalibrationModule", OnDemand = false)]
public class CalibrationModule : IModule
{
. . . . .
}
}
Когда мое приложение начинается тогда MainWindow отображается на короткое время (менее 1 секунды), и после этого S hort временной интервал Бросок модуляTypeLoadingException, связанный с CalibrationModule. Похоже, этот тип для AuthorizationModule был загружен успешно, но загрузка типа для CalibrationModule не удалась. Пожалуйста, помогите мне устранить эту ошибку.
P.S. Я не определил какой-либо экземпляр IModuleManager в своем приложении. Может быть, я должен определить его где-нибудь в моем приложении?
С этой информацией очень сложно догадаться, что произошло. Я рекомендую вам сравнивать имена в файле конфигурации и dll, которые вы пытаетесь установить. – Fka
Являются ли ваши dll и exe в одной папке? – galakt
Существуют библиотеки FlowmeterConfiguration.exe и DLL Microsoft и Prism в папке «D: \ My_C# _Projects \ FlowmeterConfiguration_Unity \ FlowmeterConfigurator \ FlowmeterConfigurator \ bin \ Debug '. –