publicKeyToken
值。情况5.1:
publicKeyToken
?与问题1相同,但适用于情况5.2。
如果两个程序集在运行时兼容;即它们暴露相同的公共API,只是它们的实现不同(例如,一个限制为.NET 3.5用于实现,一个在私有实现代码中使用.NET 4.0类型),那么用户将不会面临可扩展应用程序中的程序集绑定问题如果两个程序集具有完全相同的强名称。对于公共API在某些方面存在差异的情况,情况并非如此。
公共API不同的一种解决方案是为每个版本的程序集使用单独的名称。这可能导致ANTLR 4 Runtime的以下情况:
如果所有程序集都可以命名为 Antlr4.Runtime.dll ,则可以简化与项目关联的文档。在用户知道他们在多个供应商可能提供引用具有不同目标框架但具有相同版本的程序集的代码的环境中工作的情况下,可以采取步骤以确保他们的程序集可以在运行时定位。一个具体的例子是使用ANTLR进行语法突出显示的两个Visual Studio扩展,一个针对Visual Studio 2010+(使用.NET 4.0),另一个针对Visual Studio 2012+(使用.NET 4.5)。 [ProvideBindingPath]
和/或[ProvideCodeBase]
属性可用于提供情境5.2中描述的功能。