Visual Studio 2017 を使用して新しい Web サイトを作成しました。このサイトのターゲット フレームワークは NetCoreApp 1.1 です。これは MVC プロジェクトなので、Nuget から多数の Microsoft およびサードパーティの dll を参照します。また、ライブラリとして作成したデータ プロジェクトもあります。Netstandard1.6 です。ソリューションをビルドすると、Nuget パッケージの dll が bin フォルダーにコピーされません。このため、デバッグしようとすると、FileNotFound 例外が発生してアプリがクラッシュします。プロジェクト参照は正しくコピーされているので、Nuget パッケージの問題だけであるように見えます。回避策として、プロジェクトを発行してその出力を bin フォルダーにコピーできますが、そうする必要はありませんよね?
ベストアンサー1
.NET Core は.deps.json
出力で生成されたファイルを使用してアセンブリを解決するため、ビルド中にファイルが不必要にコピーされることを回避します。
ただし、一部のアセンブリが出力ディレクトリ内の他のアセンブリを検索しようとしたり、deps.json
ファイル内で参照されているファイルにアクセスできない場合 (IIS でビルド出力をテストする場合など) は、csproj ファイル内の要素にこれを追加して、<PropertyGroup>
NuGet アセンブリが出力ディレクトリにコピーされるようにすることができます。
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>