Discussion:
關於GAC更新版本問題
(时间太久无法回复)
Eric
2006-09-11 01:41:01 UTC
Permalink
請問,
我將共用組件加入到GAC中,
然後有其他專參考到它,
接著我更新共用組件某個函數的內容,
它只回傳一個簡單的字串,
是為了測試更新是否生效,
然後用同一個.snk,
同一個版本設定,
重新加入GAC,
理論上是不是會覆蓋之前的組件,
Refresh參考它的專案,
應該會接收到更新後的字串才對,
可是顯示出來的還是舊字串,
後來我用gacutil /u test先移除乾淨,
再重新加入GAC,
然後將參考它的專案重建,
再跑一次,
結果還是一樣,
不曉得為什麼?
請各位先進指教,
謝謝!!
Eric
2006-09-12 01:33:01 UTC
Permalink
經過測試的結果,
雖然從GAC移除,
如果只是內容修改過,
而版本序號不改的話,
此組件重新加入GAC後,
好像不會被覆寫,
感覺像是被cach起來,
因為我把路徑顯示出來,
就類似file:///c:\winnt\assembly\gac...\1.0.1.1__xxxxxxxx\Util.dll,
如果是被cach起來,
那移除GAC好像不是真的刪除該路徑下的檔案,
是不是還要做什麼動作,
才能清除cach,
抓到後來加入的同一版本序號的共用組件...

另外,
我在aspnet.config加入組件導向新版本的區段,
<dependentAssembly>
<assemblyIdentity name="Util" publicKeyToken="xxxxxxxxxxxx"
culture=""/>
<bindingRedirect oldVersion="1.0.0.0-1.65535.65535.65535"
newVersion="1.0.1.2"/>
</dependentAssembly>
雖然是放在<runtime>裡,
可是好像要把所有參考到它的其他專案重新建置,
才有辦法抓到新版的Util.dll,
這樣有點奇怪,
因為一旦共用組件更新版本,
不是組態設一設就好了,
還要連同參考到它的所有專案跟著重建,
然後全部重新部署一次,
這樣會很困擾,
希望各位先進能告訴我,
有什麼辦法可以在更新GAC的共用組件後,
只需更改組態設定,
就可以讓參考到它的所有專案動態抓到新版本,
感激不盡,
謝謝!!

"Eric" 來函:
Post by Eric
請問,
我將共用組件加入到GAC中,
然後有其他專參考到它,
接著我更新共用組件某個函數的內容,
它只回傳一個簡單的字串,
是為了測試更新是否生效,
然後用同一個.snk,
同一個版本設定,
重新加入GAC,
理論上是不是會覆蓋之前的組件,
Refresh參考它的專案,
應該會接收到更新後的字串才對,
可是顯示出來的還是舊字串,
後來我用gacutil /u test先移除乾淨,
再重新加入GAC,
然後將參考它的專案重建,
再跑一次,
結果還是一樣,
不曉得為什麼?
請各位先進指教,
謝謝!!
继续阅读narkive:
Loading...