GAC に登録する必要がある dll のディレクトリ全体があります。各ファイルを明示的に登録することは避けたいのですが、gacutil には「ディレクトリの登録」オプションがないようです。誰もが高速/シンプルなソリューションを持っていますか?
3 に答える
GACUTIL は DLL を登録しません。「COM」の意味ではありません。COM とは異なり、GACUTIL はファイルを %SYSTEMROOT%\assembly の下の不透明なディレクトリにコピーし、そこから実行します。GACUTILに「フォルダを登録してください」と頼んでも意味がありません(RegSvr32でもできるわけではありません)。
次のようなバッチ FOR コマンドを使用できます。
FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a
これをバッチ ファイルに配置する場合は、%a を %%a に置き換える必要があります
以下は、現在のディレクトリ内のすべてのファイルを Gacutil に登録するためにバッチ ファイルに入れるスクリプトです。それを行うためにバッチファイルに入れる必要はありません(コマンドプロンプトにコピーして貼り付けることができます)。
FOR %1 IN (*) DO Gacutil /i %1
編集:うーん、遅れてすみません。私が投稿したとき、前の投稿は表示されませんでした。
使用する
gacutil /il YourPathTo_A_TextFile.txt
複数の異なるフォルダーにdllがある場合は、切り替えます。それ以外の場合は、for ... in
Euro で言及されているループに進みます。
テキスト ファイルには、インストールするアセンブリ パスのリスト (1 行に 1 つのパス) が含まれている必要があります。パスは、システム全体の異なるフォルダーにすることもできます。管理者としてコマンドラインを実行してください!
YourPathTo_A_TextFile.txt の例を次に示します。
C:\...Microsoft.Practices.EnterpriseLibrary.Common.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapter.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.Design. HostAdapterV5.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll C:\...Microsoft.Practices.EnterpriseLibrary.Data .dll