2

プロジェクトではGACを使用しており、開発中は、新しいDLLを登録する前に以前のバージョンのDLLの登録を解除しなければならないことがよくあります。GACutil.exeを使用して登録することもできますが、DLLをC:\ Windows \ assemblyにドラッグアンドドロップして登録し、右クリックして[+アンインストール]をクリックして登録を解除することもできます(または、コマンドプロンプトで「del」とDLLの名前)。

私の質問:私たちのやり方に反対する兆候はありますか?「GACUtil-i」や「GACUtil-u」と同等ですか、それとも問題が発生する可能性がありますか?

ありがとうございました、

4

1 に答える 1

2

この機能は、カスタムシェル拡張機能shfusion.dllによって提供されます。GACをフラット化し、単一のフォルダーのように見せます。また、エクスプローラウィンドウを操作するときに、アセンブリの自動登録解除/登録解除を行います。だからあなたはこれをやって大丈夫です。

これは.NET4では機能しなくなり、別のフォルダー(c:\ windows \ microsoft.net \ assembly)でGACを使用し、そのフォルダーには同じ種類のシェル拡張子がないことに注意してください。 GACフォルダのコンテンツ。それを台無しにしないでください。

一般的に、そのような開発マシンでGACを使用するべきではありません。1つは、アセンブリの複数のバージョンが共存できるようにすることです。そのため、常に登録を解除/登録しても意味がありません。もう1つは、開発中に[AssemblyVersion]を変更し続けることはあまり意味がありません。IDEでサポートされているローカルコピー機能を強く支持します。それをGACに入れると、ユーザーのマシンで役立ちます。また、Microsoftがシェル拡張機能をサポートしていない理由もあると思います。あまりにも頻繁に使用されました:)

于 2012-04-04T16:37:33.500 に答える