Недавно хотел перенести мое приложение WPF Prism на 7.1, и при этом я получаю сообщения об отсутствующих ссылках в отношении Unity.Abstractions.
Обновлены пакеты нугетов Prism до Prism7.1, как показано в packages.configниже:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net472" />
<package id="Prism.Core" version="7.1.0.431" targetFramework="net472" />
<package id="Prism.Unity" version="7.1.0.431" targetFramework="net472" />
<package id="Prism.Wpf" version="7.1.0.431" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
<package id="Unity.Abstractions" version="4.0.3" targetFramework="net472" />
<package id="Unity.Container" version="5.9.4" targetFramework="net472" />
</packages>
Код App.xaml, как показано ниже:
<prism:PrismApplication x:Class="WPFPrismDemoApp.App"
x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:prism="http://prismlibrary.com/">
<Application.Resources>
</Application.Resources>
</prism:PrismApplication>
Код App.xaml.cs, как показано ниже:
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
return null;
}
protected override void InitializeShell(Window shell)
{
base.InitializeShell(shell);
Application.Current.MainWindow = shell;
var container= Container.GetContainer();
}
При выполнении этого, когда япопытаться получить доступ к контейнеру единства через Container.GetContainer, я получаю следующее исключение: тип 'IUnityContainer' определен в сборке, на которую нет ссылок.Вы должны добавить ссылку на сборку «Unity.Abstractions, версия 3.3.1.0».Я не понимаю, когда я обновил пакет nuget WPF.Unity до последней доступной версии, он автоматически обновил Unity.Abstractions до 4.0.3.0.
Кто-нибудь, кто знает, как его пропустить.