none
GAC的一些問題 RRS feed

  • 問題

  • 各位好:

    最近聽到GAC這個名詞,自己測試了一下,有幾個問題想請教大家。

    我步驟如下:

    1.建立一個VB的類別庫專案(A),裡面有一個Class(Class1),並寫了一個Hello的sub,

    2.接著將該專案的屬性->簽署中,建立一個強式名稱金鑰檔,用來簽署該專案。

    3.然後我再把該專案建置,產生出dll檔

    4.使用gacutil.exe將該dll加入GAC中。

     

    以上我測試過後是成功的。

    現在我有幾個問題想請教大家:

    1.我在別的電腦中,想使用此GAC的話,是要把原來A專案下的dll拷貝過去,還是要從windows\assembly中著手,拷貝過去後,是直接能用,還是要在該電腦上用gacutil.exe註冊一次。

    2.我在原始的VB的類別庫專案(A),新加入一個Class(Class2),然後我再把該專案建置,產生出dll檔,這時,原來的GAC會自動更新嗎,還是要再使用gacutil.exe呢,可以告訴我有哪些步驟嗎?

    3.如果我在其他專案(如web)想引用該GAC中的sub或function,我之前是直接將類別庫專案下的dll加入參考,請問一下GAC引用也是像一般dll這樣嗎,還是可以有不同的參考法。

     

    謝謝

    2007年7月24日 上午 04:00

解答

  • GAC 中的組件最好不要移除的如此頻繁,所以我之前就建議要在定稿後再安裝到 GAC 中。

     

    你可以試著先把原始組件先移除 (gacutil -u) 再安裝 (gacutil -i) 上去。

    不過確實的原因我也不清楚,你可以到 http://forums.microsoft.com/MSDN 去發問。

    2007年7月24日 上午 07:12
    版主

所有回覆

    1. 要重新執行一次 gacutil.exe,把組件加到 GAC,你可以把這個工作交給安裝程式來做。
    2. 重做一次 gacutil.exe,不過建議最好是在定稿(類別架構完成)後,再把它加到 GAC 中。
    3. 一樣的引用法,在 GAC 中的組件應該會直接顯示在加入參考的 .NET 組件視窗中(我不是很確定,你可以做個實驗看看)。
    2007年7月24日 上午 04:18
    版主
  • 首先,謝謝您的解答,我依照您的方法做了測試,發現一個很奇怪的現象

    我修改原始類別庫Class,在裡面加上一個sub,然後重新建置,接著用gacutil.exe把該dll加到GAC,我在另一個asp.net網站,參考此gac,當我將新的DLL重新發佈到gac時,asp.net網站上new 該class產生的物件,輸入.之後,該新增的sub會出現,可是我多試幾次後發現,不知為何,我照一樣的步驟,到某一階段,之前產生的class物件,輸入.之後,不會出現修改過後的sub或function,非常的奇怪,請問是什麼原因呢?

     

    謝謝!

    2007年7月24日 上午 06:58
  • GAC 中的組件最好不要移除的如此頻繁,所以我之前就建議要在定稿後再安裝到 GAC 中。

     

    你可以試著先把原始組件先移除 (gacutil -u) 再安裝 (gacutil -i) 上去。

    不過確實的原因我也不清楚,你可以到 http://forums.microsoft.com/MSDN 去發問。

    2007年7月24日 上午 07:12
    版主