Как устранить ошибку «Не удалось загрузить файл или сборку« 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: