Prism 6.3.0 是否绑定到旧版本的 Unity(我似乎无法升级)
Is Prism 6.3.0 tied to an older version of Unity (I can't seem to upgrade)
我有一个 WPF 应用程序,它使用适用于 WPF (6.3.0) 和 Unity 的最新版本的 Prism。就几个模块。它很好用。
当我为我的解决方案管理 NuGet 包时,它告诉我有新版本的 Unity (5.4.0) 可用。不幸的是,如果我尝试更新到那个版本,我将无法再构建。
原因很明显:通过此方法升级 unity 会从我的项目中删除对它 (Unity) 的所有引用。具体来说,以下 3 个引用完全从我的所有项目中消失,没有任何替换:
- Microsoft.Practices.Unity
- Microsoft.Practices.Unity.配置
- Microsoft.Practices.Unity.RegistrationByConvention
(当然,Prism 引用仍然存在)
错误消息告诉我 IUnityContainer 是在未引用的程序集 (Microsoft.Practices.Unity.4.0.0.0) 中定义的。鉴于它删除了那些程序集,这一切都是有道理的。
如果我随后尝试重新添加 Unity,当我搜索“添加项目引用”对话框时甚至找不到 Microsoft.Practices.Unity。
现在这没什么大不了的。我不需要升级。我很容易恢复原状。但是我想了解为什么这会失败以备将来参考。
- 这是否意味着 Prism 与旧版本的 Unity 相关联,我不应该升级?
- 这是否意味着类型已移动到不同的命名空间,我需要进行一些其他修复?
- 其他原因?
在 Unity 5 更新中包括命名空间的更改,如您所见,这是一个重大的破坏性更改。 Prism 6 没有支持 Unity 5 的计划,但是当前的 Prism 7 预览版(可用于 WPF)已经更新了 Common Service Locator 和 Unity。
https://www.nuget.org/packages/Prism.Unity/7.0.0.336-pre
我有一个 WPF 应用程序,它使用适用于 WPF (6.3.0) 和 Unity 的最新版本的 Prism。就几个模块。它很好用。
当我为我的解决方案管理 NuGet 包时,它告诉我有新版本的 Unity (5.4.0) 可用。不幸的是,如果我尝试更新到那个版本,我将无法再构建。
原因很明显:通过此方法升级 unity 会从我的项目中删除对它 (Unity) 的所有引用。具体来说,以下 3 个引用完全从我的所有项目中消失,没有任何替换:
- Microsoft.Practices.Unity
- Microsoft.Practices.Unity.配置
- Microsoft.Practices.Unity.RegistrationByConvention
(当然,Prism 引用仍然存在)
错误消息告诉我 IUnityContainer 是在未引用的程序集 (Microsoft.Practices.Unity.4.0.0.0) 中定义的。鉴于它删除了那些程序集,这一切都是有道理的。
如果我随后尝试重新添加 Unity,当我搜索“添加项目引用”对话框时甚至找不到 Microsoft.Practices.Unity。
现在这没什么大不了的。我不需要升级。我很容易恢复原状。但是我想了解为什么这会失败以备将来参考。
- 这是否意味着 Prism 与旧版本的 Unity 相关联,我不应该升级?
- 这是否意味着类型已移动到不同的命名空间,我需要进行一些其他修复?
- 其他原因?
在 Unity 5 更新中包括命名空间的更改,如您所见,这是一个重大的破坏性更改。 Prism 6 没有支持 Unity 5 的计划,但是当前的 Prism 7 预览版(可用于 WPF)已经更新了 Common Service Locator 和 Unity。 https://www.nuget.org/packages/Prism.Unity/7.0.0.336-pre