The Global Assembly Cache (GAC)は、ShareGate Migrateのような.Net Frameworkアプリケーションが使用するEXE(実行可能)ファイルとDLL(ライブラリ)ファイルのグループです。
GACは、Windowsオペレーティングシステムの一部です。
症状
ShareGate Migrateで次の警告が表示されます。
Another version of a DLL in your Global Assembly Cache (GAC) is prioritized over a DLL packaged and used by ShareGate Migrate. This might prevent some features from working as expected.
詳細
ShareGate Migrateには複数のDLLが同梱されていますが、これらはGACにはインストールされません。
通常この警告は、別のアプリケーションがこれらのDLLのいずれかをGACに直接インストールした場合に表示されます。
DLLがGACに存在する場合、Windowsオペレーティングシステムはアプリに同梱されているバージョンではなく、GAC内のバージョンを優先します。
GAC内のDLLのバージョンがアプリに同梱されているものと異なっていたり古い場合、一部の機能が失われたり、アプリが動作しなくなることがあります。
影響を受けることが多いDLLにはMicrosoft.Sharepoint.Client.dllやNewtonsoft.Json.dllなどがあり、通常は開発ツールによってGACにインストールされます。
注: これらは最も影響を受けやすいDLLですが、他のアプリケーションがGAC内にShareGate Migrateに影響を与える別のDLLをインストールする場合もあります。
解決策
GACにDLLをインストールしたアプリケーションをアンインストールできる場合は、それによって問題が解決するはずです。
ただし、どのDLLが影響を受けているか、またどのアプリケーションがそれをGACにインストールしたかを特定するのは簡単ではありません。
別のマシンにShareGate Migrateをインストールする
同じアプリや開発ツールがインストールされていない別のマシンにShareGate Migrateをインストールしてみてください。これが最も早く解決できる方法です。
別のマシンにアプリをインストールできない場合
現在のマシンでの作業に限定されており、どのアプリがGACにDLLをインストールしたかを特定できない場合は、サポートチームが影響を受けているDLLの特定をお手伝いします。
この情報は、問題の原因となっているアプリケーションを特定するのに役立つほか、該当のDLLを更新することで問題が解決できる場合もあります。
注: サポートチームが影響を受けているDLLの特定を支援できる場合でも、多くの場合、どのアプリケーションがそのDLLをGACにインストールしたのかまでは特定できないことをご理解ください。これは非常に重要な点です。特にサーバー上で作業している場合、GACからDLLを削除することはお勧めしません。DLLを削除すると、他のアプリケーションが使用できなくなる可能性があります。
この記事はAIによって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。
