我有一个 .NET 程序集(由于我无法控制的原因)must加入 GAC。但是,同一程序集被另一个程序使用,该程序拥有同一程序集旧版本的自己的副本。它必须使用自己的副本,而不是 GAC 中的任何内容。在这种情况下,正确的版本控制可能比它的价值更麻烦,原因我不会详细讨论。我的问题是:无论如何,有没有告诉.NET:只需使用此 DLL,就在这个目录中 - 忽略您在 GAC 或其他任何地方找到的任何内容.
确保 GAC 程序集和本地程序集具有不同的版本号(至少让您的内部版本号通过在 AssemblyInfo 中使用通配符来自动递增 AssemblyVersion 是个好主意:[程序集:AssemblyVersion("1.0.0.*" )])。然后,使用应用程序的配置重定向程序集绑定:
-
http://msdn.microsoft.com/en-us/library/2fc472t2(VS.80).aspx http://msdn.microsoft.com/en-us/library/2fc472t2(VS.80).aspx
- http://msdn.microsoft.com/en-us/library/433ysdt1(VS.80).aspx。 http://msdn.microsoft.com/en-us/library/433ysdt1(VS.80).aspx
在您的情况下,您不需要 assemblyBinding 配置的“appliesTo”属性。你只需要类似的东西:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="YourAssembly" publicKeyToken="AAAAAAAAAAAA" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.1.0" newVersion="5.0.8.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)