================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,發行者策略文件
給程序集發布新版本,如果需要引用此程序集的引用程序指向新的版本,可以不用一個一個的去配置應用程序配置文件??梢允褂冒l行者策略文件。
發行者策略文件是一個把已有版本或某個版本范圍重定向到新版本的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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。