我使用Visual Studio 2017创建了一个新网站。该网站的目标框架是NetCoreApp 1.1。由于这是一个MVC项目,它引用了Nuget的许多微软和第三方dll。我还有一个我作为库创建的数据项目。它是Netstandard1.6。当我构建解决方案时,Nuget包中的任何dll都不会被复制到bin文件夹中。这会导致应用程序在尝试调试时因FileNotFound异常而崩溃。项目引用正在被正确复制,因此它似乎只是Nuget包的问题。作为一种解决方法,我可以发布项目并将该输出复制到bin文件夹,但我不应该这样做,我应该吗?
答案 0 :(得分:12)
.NET Core使用输出中生成的.deps.json
文件来解析程序集,因此可以避免在构建期间不必要地复制文件。
但是,如果某些程序集试图在输出目录中查找其他程序集,或者无法访问deps.json
文件中引用的文件(例如,在IIS中测试构建输出),则可以将其添加到{{1 csproj文件中的元素导致NuGet程序集被复制到输出目录:
<PropertyGroup>
答案 1 :(得分:0)
此“ CopyLocalLockFileAssemblies”对我没有任何帮助。我发现在输出中获取“运行时”文件夹内容的唯一方法是使用“发布”。这不是在本地调试应用程序的解决方案。
编辑: 将Runtime IDentifiers添加到项目文件似乎对我来说有用。 此外,.NET Core 3.0修复了该问题,但仅在预览版中。