日本語版
最新ニュース
企業

EPiServer CMS の .NET Fr へのアップグレード中に DLL の競合を修正した方法

.NET Framework 4.7.1 上に構築された EPiServer 11.26.0 の CMS ソリューションがありました。セキュリティの問題、パフォーマンス、安定性の向上のため、ターゲット フレームワークを .NET Framework 4.7.1 から 4.8.1 に更新する必要がありました。 CMS に依存するプロジェクトもアップグレードされたため、安定性が懸念されました。これらのプロジェクトのアップグレードは簡単でしたが、CMS ソリューションに取り組むときはそれほど簡単ではありませんでした。 CMS ソリューション内で、一部の DLL で問題が発生しました。最初に問題を引き起こしたのは System.Net.Http DLL でした。これはあらゆる問題の中でも最大のモンスターであり、何が起こっているのかを把握するのに 2 日間かかりました。 先に進む前に、Visual Studio に .NET Framework 4.8.1 ランタイムとツールがすでにインストールされていることを前提としています。 プロジェクトを 1 つの…

EPiServer CMS の .NET Fr へのアップグレード中に DLL の競合を修正した方法

1734084972
2024-12-12 20:01:00

.NET Framework 4.7.1 上に構築された EPiServer 11.26.0 の CMS ソリューションがありました。セキュリティの問題、パフォーマンス、安定性の向上のため、ターゲット フレームワークを .NET Framework 4.7.1 から 4.8.1 に更新する必要がありました。 CMS に依存するプロジェクトもアップグレードされたため、安定性が懸念されました。これらのプロジェクトのアップグレードは簡単でしたが、CMS ソリューションに取り組むときはそれほど簡単ではありませんでした。 CMS ソリューション内で、一部の DLL で問題が発生しました。最初に問題を引き起こしたのは System.Net.Http DLL でした。これはあらゆる問題の中でも最大のモンスターであり、何が起こっているのかを把握するのに 2 日間かかりました。

先に進む前に、Visual Studio に .NET Framework 4.8.1 ランタイムとツールがすでにインストールされていることを前提としています。

プロジェクトを 1 つの .NET Framework から上位バージョンにアップグレードするには、次の手順に従います。

  1. Visual Studio でプロジェクトを右クリックし、 プロパティ

  2. を見つけます。 ターゲットフレームワーク フィールド (図 1.1) を選択して、.NET Framework 4.8.1 に切り替えます。

  3. プロンプトが表示されたら、変更を確認します。

図1.1

注記: ソリューション内に複数のプロジェクトがある場合に推奨されるアプローチは、各プロジェクトを 1 つずつアップグレードすることです。ターゲット フレームワークを変更し、そのプロジェクトを個別にクリーンアップします。ビルド エラーが発生した場合は、プロジェクトが 4.8.1 にアップグレードされておらず、まだ 4.7.1 を使用している他のプロジェクトを参照していることが原因である可能性があります。これらの依存プロジェクトを特定し、最初にビルドします。ビルド エラーが繰り返し発生する場合は、独立してビルドできる分離されたプロジェクトが見つかるまで、このプロセスを繰り返します。そのプロジェクトから始めて、次の依存プロジェクトをビルドする、というようにしていきます。最初の試行でうまくできなくても心配しないでください。

すべてのプロジェクトが正しくビルドされたら、完了したと思いましたが、問題を見逃していました。問題は私の中に現れました web.config ファイル:

図1.2

Web アプリケーションを .NET Framework 4.7.1 から 4.8.1 に変更すると、web.config が変更され、ファイルの末尾に重複セクションが追加されました。


図1.3

これは、web.config に既にあった内容と重複しました。これを修正するために、重複したコードを削除し、 httpランタイム そして 編集 web.config 内のタグは、正しいフレームワーク バージョン (私の場合は 4.8.1) を使用していました。

これらの変更を行った後、コードを再度実行すると、System.Net.Http DLL で別の問題が発生しました。

図2.1

この問題は、web.config ファイルのバインディング リダイレクトを変更することで解決しました。元の構成は次のとおりです。


    
    

私はそれを次のように更新しました:


    
    

System.IO.Compression および System.Diagnostics.Tracing DLL でも同様の問題が発生したため、これらも更新しました。


    
    


    
    

System.Net.Http の問題は、フレームワークをアップグレードするときに、プロジェクトのさまざまな部分がアセンブリの特定のバージョンを参照することです。この問題は、一部のプロジェクトでは古いバージョンの DLL が必要である一方、他のプロジェクトでは新しいバージョンが必要なために発生します。この不一致により実行時エラーが発生します。バインディング リダイレクトを追加すると、すべてのプロジェクトが 1 つの特定のバージョンを参照するようになります。バインディング リダイレクトを 4.0.0.0 に設定することで、アプリケーションの安定性を確保し、すべての参照を同じバージョンに揃え、ランタイムをより効率的にしました。

結論として、このガイドは、EPiServer CMS 11.26.0 で .NET Framework 4.7.1 から 4.8.1 にアップグレード中にエラーが発生した人を対象としています。この問題が解決されたので、ようやく CMS 11 を .NET Framework 4.8.1 で使用できるようになりました。

2024 年 12 月 12 日

#EPiServer #CMS #の #.NET #へのアップグレード中に #DLL #の競合を修正した方法

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。