【发布时间】:2011-08-04 17:29:04
【问题描述】:
尝试将 Prism4 Bootstrapper 与源引用的 Unity 一起使用时,我不断收到错误消息(将现有项目包含在解决方案中)。从源代码构建 Unity 然后包含输出文件时,我也遇到了错误。
详情如下:
我有一个使用 Prism4 的项目。 Prism 的 Bootstrapper 组件依赖于 Unity 2.0。对我来说更准确地说,他们依赖于统一的 2.0.414.0 版本。
如果我尝试将 Prism 的当前或更新版本作为 prism 4 包含到我的项目中,那么 VS 会给我一条消息以生成一些 app.config 代码来强制加载最新的程序集。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.1.505.0" newVersion="2.1.505.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
在使用 Unity 2.0 和 Unity 2.1 的预构建 dll 文件时,这没有问题...
但是,如果我尝试从源代码构建这些并使用新的 DLL,或者将项目直接包含到我的项目中,我总是会收到错误:
类型“Microsoft.Practices.Unity.IUnityContainer”在未引用的程序集中定义。您必须添加对程序集“Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”的引用。请注意 Unity 2.0 [b]IS[/b] 版本 2.0.414.0。所以我的第一次尝试是使用 unity 2.0 源代码库。我也用这个版本做了很多后续的尝试,包括从一个新的项目开始。我尝试通过预先构建的 bin 文件、源代码和自定义构建的 dll 来包含 Prism,但结果相同。我还使用 Unity 2.1 尝试了所有相同的事情,希望它可以工作。
我的环境是 MSVC# 2010 win7 x64。我在 x86 和任何 CPU 配置以及调试和发布下构建。唯一的依赖是 Prism 和 Unity。
【问题讨论】:
标签: c# wpf unity-container prism