Как устранить ошибку «Не удалось загрузить файл или сборку« Microsoft.Practices.Prism »»?

Я искал последние несколько дней, пытаясь исправить ошибку в приложении WPF с использованием Prism, но мне не повезло, и я подумал, увижу ли у Stackoverflow какие-либо идеи. Пожалуйста, обратите внимание, я определенно нуб, когда дело доходит до Призмы в целом :)

Я нахожусь в процессе изучения того, как создать приложение с использованием Prism, причем Unity - мой предпочтительный контейнер для внедрения зависимостей. Я пытаюсь загрузить модули, используя измененный файл App.config, но получаю ошибку времени выполнения, связанную с загрузчиком. Сообщения об ошибках будут более точными, чем любое объяснение, которое я могу предоставить, поэтому я включил файл App.config, файл App.xaml.cs, где появляется ошибка, и информацию об ошибке ниже.

Заранее благодарю за любую информацию, которую вы можете предоставить, и дайте мне знать, если вам нужна дополнительная информация!

РЕДАКТИРОВАТЬ: Этот каталог файлов, указанный в ошибке (C: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config, строка 4), относится к четвертой строке файла App.config (имя раздела = ...). Все учебники и ссылки, которые я нашел, такие же, как у меня, но это все еще та линия, которая, кажется, вызывает проблемы.

РЕДАКТИРОВАТЬ 2: Строка, на которую ссылаются в первом редактировании, на самом деле точно такая же, как на официальномРуководство по Microsoft Prism.

РЕДАКТИРОВАТЬ 3Таким образом, я так и не выяснил причину, по которой это было вызвано, но, разочаровавшись, я перезапустил пример проекта, над которым работал, и не вижу ошибки в новом проекте. Все еще не уверен, что корень проблемы был все же.

РЕДАКТИРОВАТЬ 4Шучу, такая же ошибка снова в новой программе.

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="modules" type="Microsoft.Practices.Prism.Modularity.ModulesConfigurationSection, Microsoft.Practices.Prism"/>
  </configSections>

  <modules>
    <module assemblyFile="EmailModule.dll" moduleType="EmailService.ModuleDefinitions.Module, EmailService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="EmailModule" startupLoaded="true" />
  </modules>


  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

App.xaml.cs (в строке «bootstrapper.Run ()» появляется ошибка):

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;

namespace EmailClient
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            MyBootstrapper bootstrapper = new MyBootstrapper();
            bootstrapper.Run();
        }
    }
}

Сообщение об ошибке:

System.Configuration.ConfigurationErrorsException не обработано. HResult = -2146232062 Сообщение = Произошла ошибка при создании обработчика раздела конфигурации для модулей: не удалось загрузить файл или сборку «Microsoft.Practices.Prism» или одну из ее зависимостей. Система не может найти указанный файл. (C: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config строка 4) Source = System.Configuration BareMessage = Произошла ошибка при создании обработчика раздела конфигурации для модулей: не удалось загрузить файл или сборка «Microsoft.Practices.Prism» или одна из ее зависимостей. Система не может найти указанный файл. Имя файла = C: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config Строка = 4 StackTrace: в System.Configuration.BaseConfigurationRecord. .BaseConfigurationRecord.GetSectionRecursive (строка configKey, логическое значение getLkg, логическое значение checkPermission, логическое значение getRuntimeObject, логическое значение requestIsHere, объект и результат, объект & resultRuntimeObject) в System.Configuration.BaseConfiguration.ecf .IInternalConfigSystem. .Practices.Prism.Modularity.Con figurationModuleCatalog.InnerLoad () в Microsoft.Practices.Prism.Modularity.ModuleCatalog.Load () в Microsoft.Practices.Prism.Modularity.ModuleCatalog.Initialize () в Microsoft.Practices.Prism.Modularity.ModuleManager. Practices.Prism.UnityExtensions.UnityBootstrapper.InitializeModules () в Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Run (логическое значение runWithDefaultConfiguration) в Microsoft.Practices.Prism.Bootstrapper.Run () в почтовом агенте Startup на сайте EmailSlient () c: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ App.xaml.cs: строка 21 в System.Windows.Application. <. ctor> b__1 (объект не используется) в System.Windows.Threading.ExceptionWrapper.InternalRealCall ( Обратный вызов делегата, аргументы объекта, Int32 numArgs) в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (источник объекта, метод делегата, аргументы объекта, Int32 numArgs, делегат catchHandler) в System.Windows.Threading.DispatcherOperation.InvokeImpl () в системе. Windows.Threadi ng.DispatcherOperation.InvokeInSecurityContext (состояние объекта) в System.Threading.ExecutionContext.RunInternal (ExecutionContext creationContext, обратный вызов ContextCallback, состояние объекта, логический preserveSyncCtx) в системном состоянии. ) в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, ContextCallback callback, состояние объекта) в System.Windows.Threading.DispatcherOperation.Invoke () в System.Windows.Threading.Dispatcher.ProcessQueue () в System.Windows.Threading. Dispatcher.WndProcHook (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & обрабатываются) в MS.Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPhlend. DispatcherCallbackOperation (Object o) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (Делегированный обратный вызов, Object args, Int32 numArgs) в MS.Internal.Threadin g.ExceptionFilterHelper. Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) в MS.Win32.UnsafeNativeMethods.DispatchMessage (MSG & msg) в System.Windows.Threading.Dramat .Dispatcher.PushFrame (фрейм DispatcherFrame) в System.Windows.Threading.Dispatcher.Run () в System.Windows.Application.RunDispatcher (игнорирование объекта) в System.Windows.Application.RunInternal (оконное окно) в System.Windows.Application. .Run (окно окна) в System.Windows.Application.Run () в EmailClient.App.Main () в c: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ obj \ Debug \ App.g.cs: строка 50 InnerException: System.IO.FileNotFoundException HResult = -2147024894 Сообщение = Не удалось загрузить файл или сборку «Microsoft.Practices.Prism» или одну из ее зависимостей. Система не может найти указанный файл. Source = System.Configuration FileName = Microsoft.Practices.Prism FusionLog ==== Информация о состоянии предварительной привязки === LOG: DisplayName = Microsoft.Practices.Prism (Partial) WRN: Информация о частичной привязке была предоставлена ​​для сборки: WRN: Название сборки: Microsoft.Practices.Prism | Идентификатор домена: 1 WRN: частичное связывание происходит, когда указана только часть отображаемого имени сборки. WRN: Это может привести к загрузке подшивки неверной сборки. WRN: рекомендуется предоставить полностью определенную текстовую идентификацию для сборки, WRN: которая состоит из простого имени, версии, культуры и токена открытого ключа. WRN: см. Технический документhttp://go.microsoft.com/fwlink/?LinkId=109270 для получения дополнительной информации и общих решений этой проблемы. LOG: Appbase = file: /// C: / Users / Roger / Documents / TestPrismProject / WpfApplication1 / WpfApplication1 / bin / Debug / LOG: Initial PrivatePath = NULL Вызывающая сборка: System.Configuration, Version = 4.0.0.0, Culture = нейтральная , PublicKeyToken = b03f5f7f11d50a3a. LOG: эта привязка начинается в контексте загрузки по умолчанию. LOG: использование файла конфигурации приложения: C: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config LOG: использование файла конфигурации хоста: LOG: использование файла конфигурации компьютера из C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config. LOG: Политика, не применяемая в настоящее время для ссылки (частная, пользовательская, частичная или привязка сборки на основе местоположения). LOG: Попытка загрузки нового файла URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism.DLL. LOG: Попытка загрузки нового файла URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism/Microsoft.Practices.Prism.DLL. LOG: Попытка загрузки нового файла URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism.EXE. LOG: Попытка загрузки нового файла URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism/Microsoft.Practices.Prism.EXE.

   StackTrace:
        at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)
        at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.Init(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
        at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.InitWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
        at System.Configuration.RuntimeConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)
        at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)
   InnerException: 

Ответы на вопрос(1)

Ваш ответ на вопрос