如何在 ASP .NET 页面上使用任何可用版本的程序集?
例如,我在计算机上的网页上添加 Crystal Reports 控件之前使用此标记:
<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
但是,如果我在具有不同版本 Crystal Reports 的计算机上安装此网页,则必须更改程序集属性的版本部分:
<%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
有什么办法可以通过指示 ASP .NET 使用最新的可用版本或指定所需的最低版本来避免这种情况吗?
最佳答案
只需删除 Version=
部分即可:
<%@ Register Assembly="CrystalDecisions.Web, , Culture=neutral,
PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web"
TagPrefix="CR" %>
但是,这只适用于后期绑定(bind)
。如果您实际上针对特定版本的程序集编译任何程序集,您将需要在 Web.config 文件中进行程序集绑定(bind)重定向。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Web"
publicKeyToken="692fbea5521e1304"
/>
<bindingRedirect oldVersion="10.5.3700.0"
newVersion="13.0.2000.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
关于asp.net - 在 ASP .NET 页面中注册任何版本的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5276965/