Sitecore Experience Commerce 10.0でのNuGet パッケージのバージョンの不整合


解説

Commerce Engineの起動または再起動が、未処理の例外で失敗する可能性があります。この問題の根本的な原因は、Sitecore Commerce NuGet パッケージを復元した後、互換性のないバージョンでパッケージの依存関係が解決されることです。この事象が発生した場合、次のメッセージがログに出力されます:

System.IO.FileLoadException: Could not load file or assembly 'Sitecore.Commerce.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)

解決策

本事象を解決するには、Sitecore.Commerce.Engine.csproj ファイルを以下の通り変更してください:

  1. 以下のパッケージを追加します:
    <PackageReference Include="Sitecore.Commerce.Plugin.ManagedLists" Version="6.0.*" />
    <PackageReference Include="Sitecore.Commerce.Plugin.Search" Version="6.0.*" />
    <PackageReference Include="Sitecore.Commerce.Plugin.Views" Version="6.0.*" />
  2. プロジェクトをクリーン アップします。
  3. ソリューションを再構築します。
    注:NuGet キャッシュを削除することをお勧めします。
    • Visual Studioで、以下を実施します。
      1. メニュー バーから、Toolsをクリックします。
      2. Tools ドロップダウン リストからOptionsを選択します。
      3. Options ダイアログボックスで、NuGet Package Managerを探してクリックします。
      4. NuGet Package Manager ドロップダウン リストからGeneralを選択します。
      5. Clear All NuGet Cache(s) ボタンをクリックします。
    • NuGetのコマンドライン インターフェースであるnuget.exeを使用して、以下のコマンドを実行する:
      nuget locals all -clear