2012-04-04 26 views
2

我們在我們的項目中使用GAC,在開發過程中,我們通常必須在註冊新的DLL之前取消註冊以前版本的DLL。雖然我們可以使用GACutil.exe來執行此操作,但我們也可以將我們的DLL拖放到C:\ Windows \ assembly來註冊它們,然後右鍵單擊+ Uninstall來取消註冊它們(或者有時我們會在命令提示符下「del」和DLL的名稱)。GACUtil與手動編輯C: Windows assembly

我的問題:有沒有跡象反對我們做事的方式?它是否等同於「GACUtil -i」和「GACUtil -u」,或者它可能導致問題?

謝謝

+1

我不認爲刪除是一個問題。但安裝,你需要得到目錄名稱等。 – leppie 2012-04-04 16:04:56

+0

@leppie是的,但使用拖放似乎自動化這一切。 – Jeff 2012-04-04 19:03:54

回答

2

此功能由自定義外殼擴展提供,Shfusion.dll的。它使GAC變平,並使其看起來像一個文件夾。並且在您操作瀏覽器窗口時負責爲您自動取消/註冊組件。所以你很好。

請注意,這將不再適用於.NET 4,它在不同的文件夾(c:\ windows \ microsoft.net \ assembly)中使用GAC,並且該文件夾沒有相同類型的外殼擴展,您會看到GAC文件夾的原始內容。不要混淆那個。

一般情況下,您應該而不是在您的開發機器上使用GAC那樣。首先,使用它的要點是允許程序集的多個版本共存,因此不斷地註冊/註冊是沒有意義的。另一方面,在開發過程中不斷變更[AssemblyVersion]並沒有多大意義。強烈支持IDE支持的「複製本地」功能。將它放入GAC可能對用戶的計算機很有用。我認爲這也是微軟不再支持shell擴展的原因。它經常使用:)

+0

非常感謝。非常清楚。 – Jeff 2012-04-04 19:05:06