我有一个 .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。我做错了什么?
更新
我相信我已经隔离了这个问题。为了隔离问题,我执行了以下操作:
LiteDB
命名空间的引用。编译后,LiteDB.dll 按预期位于 bin/debug/net5.0
目录中。LiteDB
命名空间的引用。编译后,LiteDB.dll 程序集不位于bin/debug/net5.0
目录中。控制台应用 .csproj 包括 <OutputType>Exe</OutputType>
。类库项目不包含OutputType
元素。这是唯一的区别。但是,由于 OutputType
defaults to library,这是有道理的。但是,问题是,如何让 LiteDB.dll 程序集出现在类库项目的 bin/debug/net5.0
目录中。这就是我需要的。