Bootstrap のパッケージを利用している ASP.NET Core プロジェクトでビルド時に "Two assets found targeting the same path with incompatible asset kinds" エラーが発生する
Bootstrap のパッケージを利用しているプロジェクトでビルド時に "Two assets found targeting the same path with incompatible asset kinds" エラーが発生する現象と対象法について紹介します。
現象
NuGetパッケージでBootstrapを利用しているプロジェクトで次のエラーが発生します。
エラーメッセージ
Two assets found targeting the same path with incompatible asset kinds:
'C:\Users\(ユーザー名)\.nuget\packages\bootstrap\5.2.2\contentFiles\any\any\wwwroot\css\bootstrap-grid.css' with kind 'All'
'C:\(リポジトリのパス)\(ASP.NET Coreプロジェクトのパス)\wwwroot\css\bootstrap-grid.css' with kind 'All'
for path 'css/bootstrap-grid.css'
原因
NuGetのパッケージディレクトリ内の静的ファイルとプロジェクトのディレクトリのwwwrootに配置された静的ファイルが同じファイルであり、競合しているためと考えられます。
対処法1: bootstrapパッケージをアンインストールする
bootstrapを利用していない場合は、パッケージをアンインストールすると解消できます。
対処法2: wwwrootフォルダを再マウントする
bootstrapを利用している場合は、wwwroot フォルダを再度マウントするとエラーを解消できる場合があります。
手順
エラーが発生しているソリューションを開き、プロジェクトノード内の
wwwroot
フォルダの項目を右クリックします。
ポップアップメニューが表示されますので、[プロジェクトから除外]の項目をクリックします。
プロジェクトから除外され、ソリューションエクスプローラーから表示されなくなりました。
続いて、再マウントします。ソリューションエクスプローラーのウィンドウの上部のツールバーの[すべてのファイルを表示]のボタンをクリックします。
ボタンをクリックすると、ボタンが押された状態になり、ソリューションに追加していないフォルダも点線のフォルダアイコンで表示される状態になります。
点線アイコンで表示されている
wwwroot
のフォルダを選択し、右クリックします。ポップアップメニューの[プロジェクトに含める]の項目をクリックします。
再度プロジェクトに
wwwroot
フォルダが追加されました。
リビルドしてエラーが解消されるか確認します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用