运行不同版本的Unity

时间:2010-10-06 21:33:48

标签: c# .net assemblies version unity-container

是否可以在应用程序中运行不同版本的Unity?

我引用了一个应用程序,该应用程序使用旧版本的统一版本和当前使用最新版本的Unity版本。

我得到了这个warning

我尝试了帖子的建议,但没有成功。

如何使这个工作?

感谢。

1 个答案:

答案 0 :(得分:1)

编译时警告只是一个警告。只要您有两个版本的Unity DLL可供应用程序使用,您就可以忽略它。 您可以通过编辑App.config来实现此目的,看起来像这样

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Unity" publicKeyToken="605f591b87e816bd"/>
      <codeBase version="1.0.0.0" href="./v1/Unity.dll"/>
      <codeBase version="2.0.0.0" href="./v2/Unity.dll"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

这只是伪配置,但你可以看到在我的应用程序'bin'目录下,我将为两个版本的Unity提供一个子目录。这个配置基本上对.net运行时说,“当你需要版本1或2的统一时,你可以从这些子目录中获取它们。”

当然,你是否应该这样做是另一回事。如果您的应用程序中有任何松散的配置(例如xml)在Unity DLL中引用类型 - 那些'引用'将需要指定Unity DLL的版本限定的强名称,否则您将获得运行时错误。