メインコンテンツにスキップ

Another version of a DLL in your Global Assembly Cache (GAC) is prioritized

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.dllNewtonsoft.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によって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。

こちらの回答で解決しましたか?