Не удалось загрузить файл или сборку 'Microsoft.Practices.Unity, Version = 4.0.0.0 ИЛИ Поддерживается ли Unity 5.8.11 для Prism 7.0.0.396 с WPF? - PullRequest
0 голосов
/ 03 октября 2018

Я унаследовал проект WPF, который использует Prism и Unity, который был изначально написан на .Net 4.5.Я обновляю проект до .net 4.7.1 и обновляю все пакеты Unity и Prism до последних версий:

  • Unity 5.8.11
  • Prism.Core 7.0.0.396 (был 6.3.0, но Nuget обновил его до 7)
  • Prism.Unity 6.3.0
  • Prism.Wpf 6.3.0

Есть 5 проектовс основным проектом - настольное приложение (WPF), которое запускает загрузчик.Я получаю следующую ошибку (непосредственно из bootstrapper.Run ()) при запуске приложения:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Practices.Unity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f' or one of its dependencies. The system cannot find the file specified.'

Я включил полную трассировку стека внизу.

Я искал подходящие места, которые мне известны, где будет доступна информация о зависимостях, а именно Nuget и файл app.config, но ничего не выделяется.

Отсутствующее имя файла в трассировке стека - Microsoft.Practices.Unity, но все имеющиеся у меня версии Unity теперь указывают на файлы Unity. *. Dll.

Тогда возникает вопрос: На какой версии Unity скомпилирован пакет Nuget Prisim.Unity?Поддерживается ли Unity 5.8.11?Нужно ли добавлять перенаправление Binding?Я в порядке со сборкой из источника, если это необходимо.

Любое понимание было бы здорово, даже если это просто подтверждение того, что Prism 6.3.0 работает с Unity 5.8.11, и я где-то допустил ошибку,

Спасибо!Русь

System.IO.FileNotFoundException
  HResult=0x80070002
  Message=Could not load file or assembly 'Microsoft.Practices.Unity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f' or one of its dependencies. The system cannot find the file specified.
  Source=Prism.Unity.Wpf
  StackTrace:
   at Prism.Unity.UnityBootstrapper.Run(Boolean runWithDefaultConfiguration)
   at Prism.Bootstrapper.Run()
   at MYAPP1.Desktop.App.OnStartup(StartupEventArgs e) in C:\path\to\Project\MYAPP1\App.xaml.cs:line 20
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at MYAPP1.Desktop.App.Main() in C:\path\to\Project\MYAPP1\obj\Debug\App.g.cs:line 51

1 Ответ

0 голосов
/ 04 октября 2018

На какую версию Unity скомпилирован пакет Prisim.Unity Nuget?

Глядя на Nuget , это зависит от Unity 4.0.1

Поддерживается ли Unity 5.8.11?

Только с 7.0.0 и более поздних версий, которые сейчас находятся в предварительном выпуске.

Таким образом, вы можете использовать Prism 6.3 иUnity 4 или переключитесь на пререлиз Prism 7.

...