Como resolver o erro "Não foi possível carregar o arquivo ou assembly 'Microsoft.Practices.Prism'"?

Estive pesquisando nos últimos dias tentando corrigir um erro em um aplicativo WPF usando o Prism, mas não tive sorte e pensei em ver se o Stackoverflow tinha alguma idéia. Por favor, note que eu sou definitivamente um noob quando se trata de Prism em geral :)

Estou no processo de aprender a criar um aplicativo usando o Prism, com o Unity sendo meu recipiente de injeção de dependência preferido. Estou tentando carregar módulos usando um arquivo App.config modificado, mas estou recebendo um erro de tempo de execução relacionado ao bootstrapper. As mensagens de erro serão mais precisas do que qualquer explicação que eu possa fornecer, por isso incluí o arquivo App.config, o arquivo App.xaml.cs em que o erro está aparecendo e as informações de erro abaixo.

Agradeço antecipadamente por qualquer insight que possa fornecer e me informe se houver alguma informação adicional que você possa precisar!

EDITAR: Este diretório de arquivo mencionado no erro (C: \ Usuários \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config linha 4) refere-se à quarta linha do arquivo App.config (nome da seção = ...) Todos os tutoriais e referências que encontrei são os mesmos que eu tenho, mas essa ainda é a linha que está causando problemas.

EDIT 2: A linha mencionada na primeira edição é exatamente a mesma do conteúdo oficialGuia do Microsoft Prism.

EDIT 3: Portanto, nunca descobri a raiz do que estava causando isso, mas, frustrado, reiniciei o projeto de exemplo em que estava trabalhando e não estou recebendo o erro no novo projeto. Ainda não tenho certeza qual era a raiz do problema.

EDIT 4: Brincadeirinha, o mesmo erro está de volta no novo programa.

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 (erro aparece na linha "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();
        }
    }
}

Mensagem de erro:

System.Configuration.ConfigurationErrorsException não foi tratado HResult = -2146232062 Mensagem = Ocorreu um erro ao criar o manipulador da seção de configuração dos módulos: Não foi possível carregar o arquivo ou assembly 'Microsoft.Practices.Prism' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado. (C: \ Usuários \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config linha 4) Origem = System.Configuration BareMessage = Ocorreu um erro ao criar o manipulador da seção de configuração dos módulos: Não foi possível carregar o arquivo ou assembly 'Microsoft.Practices.Prism' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado. Nome do arquivo = C: \ Usuários \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config Line = 4 .BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object & result, Object & resultRuntimeObject) em System.Configuration.BaseConfigurationRecord.fetSection.onet .IInternalConfigSystem.GetSection (String sectionName) em System.Configuration.ConfigurationManager.GetSection (String sectionName) em Microsoft.Practices.Prism.Modularity.ConfigurationStore.RetrieveModuleConfigurationSection () em Microsoft.Practices.Prism.Modulared.ConfigurationModernity.ConfigurationModernedModernity.ConfigurationModernity.ConfigurationModernity.ConfigurationModernity.ConfigurationModernedModernity.ConfigurationModernedModernity.ConfigurationModernedModernity.ConfigurationModernedModernity.ConfigurationModernity.ConfiguraçãoModelo .Practices.Prism.Modularity.Con figurationModuleCatalog.InnerLoad () em Microsoft.Practices.Prism.Modularity.ModuleCatalog.Load () em Microsoft.Practices.Prism.Modularity.ModuleCatalog.Initialize () em Microsoft.Practices.Prism.Modularity.ModuleManager.Run () na Microsoft. Practices.Prism.UnityExtensions.UnityBootstrapper.InitializeModules () em Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Run (Booleano runWithDefaultConfiguration) em Microsoft.Practices.Prism.Bootstrapper.Run () em EmailClient.App.OnStartupupupStupe c: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ App.xaml.cs: linha 21 em System.Windows.Application. <.ctor> b__1 (Objeto não utilizado) em System.Windows.Threading.ExceptionWrapper.InternalRealCall ( Delegar retorno de chamada, Argumentos de objetos, Num32 de Int32) em MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Origem do objeto, Método delegado, Argumentos de objetos, Argumentos de objetos, Int32 numArgs, Delegar catchHandler) em System.Windows.Threading.DispatcherOperation.InvokeImpl () em System. Windows.Threadi ng.DispatcherOperation.InvokeInSecurityContext (estado do objeto) e System.Threading.ExecutionContext.RunInternal (ExecutionContext ExecutionContext, retorno de chamada de ContextCallback, estado do objeto, Boolean preserveSyncCtx) em System.Threading.ExecutionConteoolContextCall, execução de chamada, ExecutionContextCall ) em System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, retorno de chamada ContextCallback, estado do objeto) em System.Windows.Threading.DispatcherOperation.Invoke () em System.Windows.Threading.Dispatcher.ProcessQueue () em System.Windows.Threading. Dispatcher. DispatcherCallbackOperation (Objeto o) em System.Windows.Threading.ExceptionWrapper.InternalRealCall (delegar retorno de chamada, Argumentos de objeto, Int32 numArgs) em MS.Internal.Threadin g.ExceptionFilterHelper.TryCatchWhen (Origem do objeto, Método delegado, Args de objetos, Int32 numArgs, Delegado catchHandler) em System.Windows.Threading.Dispatcher.LegacyInvokeImpl (prioridade DispatcherPriority, TimeSpan timeout, Método de delegação, Argumentos de objetos, Int32 numArgs) em MS. Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) em MS.Win32.UnsafeNativeMethods.DispatchMessage (MSG e msg) em System.Windows.Threading.Dispatcher.PushFrameIind. .Dispatcher.PushFrame (quadro DispatcherFrame) em System.Windows.Threading.Dispatcher.Run () em System.Windows.Application.RunDispatcher (ignorar objeto) em System.Windows.Application.RunInternal (janela da janela) em System.Windows.Application Execute (janela da janela) em System.Windows.Application.Run () em EmailClient.App.Main () em c: \ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ obj \ Debug \ App.g.cs: linha 50 InnerException: System.IO.FileNotFoundException HResult = -2147024894 Mensagem = Não foi possível carregar o arquivo ou assembly 'Microsoft.Practices.Prism' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado. Origem = System.Configuration FileName = Microsoft.Practices.Prism FusionLog ==== Informações sobre o estado de pré-ligação === LOG: DisplayName = Microsoft.Practices.Prism (parcial) WRN: informações de ligação parcial foram fornecidas para um assembly: WRN: Nome do assembly: Microsoft.Practices.Prism | ID do domínio: 1 WRN: ocorre uma ligação parcial quando apenas parte do nome para exibição do assembly é fornecida. WRN: Isso pode resultar no fichário carregando uma montagem incorreta. WRN: É recomendável fornecer uma identidade textual totalmente especificada para o assembly, WRN: que consiste no nome simples, versão, cultura e token da chave pública. WRN: consulte o documentohttp://go.microsoft.com/fwlink/?LinkId=109270 para obter mais informações e soluções comuns para esse problema. LOG: Appbase = arquivo: /// C: / Usuários / Roger / Documentos / TestPrismProject / WpfApplication1 / WpfApplication1 / bin / Debug / LOG: Initial PrivatePath = NULL Calling assembly: System.Configuration, Versão = 4.0.0.0, Culture = neutral , PublicKeyToken = b03f5f7f11d50a3a. LOG: Essa ligação é iniciada no contexto de carregamento padrão. LOG: Usando o arquivo de configuração do aplicativo: C: \ Usuários \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config LOG: Usando o arquivo de configuração do host: LOG: Usando o arquivo de configuração da máquina: LOG: Usando o arquivo de configuração da máquina em C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: a política não está sendo aplicada à referência no momento (ligação de montagem privada, personalizada, parcial ou baseada em local). LOG: Tentativa de download do novo arquivo de URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism.DLL. LOG: Tentando baixar o novo arquivo de URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism/Microsoft.Practices.Prism.DLL. LOG: Tentativa de download de novo arquivo de URL: /// C: /Users/Roger/Documents/TestPrismProject/WpfApplication1/WpfApplication1/bin/Debug/Microsoft.Practices.Prism.EXE. LOG: Tentativa de download de novo arquivo de 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: 

questionAnswers(6)

yourAnswerToTheQuestion