================1,指定程序集版本
例如:最开始发布的程序集有些BUG,或者该程序集需要新的功能,就需要发布新的版本。
就需要我们在配置文件里面指定
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="zhangdi" culture="neutral" publicKeyToken="c2b627ba3f19e9ae"/> <bindingRedirect oldVersion="1.0.0.0 - 1.0.0.1" newVersion="1.0.0.1"></bindingRedirect> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
oldVersion:必须设置,oldVersion特性指定应把程序集的哪个版本重定向到新版本上 。使用oldVersion特性可以指定一个范围。
newVersion:必须设置,指定新版本
================2,发行者策略文件
给程序集发布新版本,如果需要引用此程序集的引用程序指向新的版本,可以不用一个一个的去配置应用程序配置文件。可以使用发行者策略文件。
发行者策略文件是一个把已有版本或某个版本范围重定向到新版本的XML文件。使用的语法与应用程序配置文件相同。
步骤:
===========1,创建发行者策略文件(mypolicy.config)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="zhangdi" culture="neutral" publicKeyToken="c2b627ba3f19e9ae"/> <bindingRedirect oldVersion="1.0.0.0 - 1.0.0.3" newVersion="1.0.0.1"></bindingRedirect> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
指定程序集版本访问(1.0.0.0 - 1.0.0.3)重定向到1.0.0.1版本上
===========2,创建发行者策略程序集
al /linkresource:mypolicy.config /out:policy.1.0.zhangdi.dll /keyfile:e:/mykey.snk
mypolicy.config: 配置文件所在的路径
policy.1.0.zhangdi.dll 输出的程序集文件名(随便命名,一般命令需规范,1表示主版本好0表示次版本号)
e:/mykey.snk 公钥所在的路径
===========3,将发行者的策略程序集添加到全局程序集缓存中
gacutil -i policy.1.0.zhangdi.dll
现在所有引用(1.0.0.0 - 1.0.0.3)版本的此程序集的版本的应用程序,都重定向了此程序集的(1.0.0.1)版本上了。
现在,可能有的应用程序不需要用重定向程序集的版本,可以在该应用程序的配置文件中配置(不使用发行者策略文件)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="zhangdi" culture="neutral" publicKeyToken="c2b627ba3f19e9ae"/> <publisherPolicy apply="no"></publisherPolicy> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
<publisherPolicy apply="no"></publisherPolicy> 不使用发行者策略文件
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。