SatelliteContractVersionAttribute 类为通过资源管理器使用本地化资源的主程序集提供版本支持。通过将 SatelliteContractVersionAttribute 应用于应用程序的主程序集,无需更新主程序集的附属程序集即可更新和重新部署主程序集。例如,可以在不引入新资源的 Service Pack 中使用 SatelliteContractVersionAttribute 类,同时无需重新生成和重新部署附属程序集。对于可供使用的已本地化的资源,主程序集的附属合同版本必须匹配您的附属程序集的 AssemblyVersionAttribute 类。您必须在 SatelliteContractVersionAttribute 中指定确切版本号;不允许使用像“*”这样的通配符。有关更多信息,请参见 检索桌面应用程序中的资源。
更新程序集
SatelliteContractVersionAttribute 类使您可以不必更新附属程序集就更新主程序集,反之亦然。当更新主程序集时,其程序集版本号发生更改。如果想要继续使用现有附属程序集,则更改主程序集的版本号,但保持附属合同版本号不变。例如,在您的第一版中,主程序集版本可以是 1.0.0.0。附属合同版本和附属程序集的程序集版本也将是 1.0.0.0。如果您需要为 Service Pack 更新主程序集,则可以将程序集版本更改为 1.0.0.1,而将附属合同版本和附属程序集的程序集版本保持为 1.0.0.0。
如果您需要更新附属程序集而不是主程序集,则可以更改该附属程序集的 AssemblyVersionAttribute。您还必须将策略程序集与附属程序集一起提供,策略程序集指示新的附属程序集与旧的附属程序集兼容。有关这些策略的更多信息,请参见运行时如何定位程序集。
下面的代码说明如何设置附属合同版本。该代码可以放置在生成脚本中,或者 AssemblyInfo.vb 或 AssemblyInfo.cs 文件中。
<Assembly: SatelliteContractVersionAttribute("4.3.2.1")>
[assembly: SatelliteContractVersionAttribute("4.3.2.1")]