NuGet - 包 dll 未复制到输出目录

时间:2021-07-15 16:13:35

标签: c# nuget

我有一个 .NET 5 类库项目。此项目依赖于 NuGet 包。如果没有这个 NuGet 包,我的代码将无法编译。但是,一旦我添加了这个包,我的代码就会成功编译。但是,我注意到 bin/debug/net5.0 目录没有我期望的 NuGet 包的 .dll。我引用的其他 NuGet 包在 bin/debug/net5.0 目录中有我期望的 .dll 文件。我的问题是,当我在 runner 中使用这个库时,它无法运行,因为它正在寻找与 NuGet 包关联的 .dll,但它不存在。

为什么 NuGet 包的 .dll 不会被复制到 bin/debug/net5.0 目录?我可以看到 NuGet 包的 [version]/lib/netstandard2.0 目录中有一个 .dll 文件。我的 bin/debug/net5.0 目录中需要该 .dll。我做错了什么?

更新

我相信我已经隔离了这个问题。为了隔离问题,我执行了以下操作:

  1. 创建了一个新的 .NET 5 控制台应用程序。添加了 LiteDB NuGet 包。添加了对 LiteDB 命名空间的引用。编译后,LiteDB.dll 按预期位于 bin/debug/net5.0 目录中。
  2. 创建了一个新的 .NET 类库项目。添加了 LiteDB NuGet 包。添加了对 LiteDB 命名空间的引用。编译后,LiteDB.dll 程序集位于bin/debug/net5.0目录中。

控制台应用 .csproj 包括 <OutputType>Exe</OutputType>。类库项目包含OutputType 元素。这是唯一的区别。但是,由于 OutputType defaults to library,这是有道理的。但是,问题是,如何让 LiteDB.dll 程序集出现在类库项目的 bin/debug/net5.0 目录中。这就是我需要的。

0 个答案:

没有答案