【问题标题】:Running Different version of Unity运行不同版本的 Unity
【发布时间】:2010-10-06 21:33:48
【问题描述】:
是否可以在一个应用中运行不同版本的 Unity?
我引用了一个使用旧版本 unity 的应用程序,而当前版本的 unity 我使用最新版本。
我明白了 warning 。
我尝试了帖子的建议,但没有成功。
如何让它工作?
谢谢。
【问题讨论】:
标签:
c#
.net
assemblies
version
unity-container
【解决方案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 的版本限定强名称,否则您将得到运行时错误。