.net core 从类库引用的DLL未复制到输出目录

.net core 从类库引用的DLL未复制到输出目录,.net-core,.net Core,我有两个.NET标准库,编译为Foo.dll和Bar.dll。条形图包含对Foo的引用。在我的解决方案中,我有一个.NET标准类库MyClassLibrary.csproj,其中包含引用这两个DLL的代码。它们是从MyClassLibrary.csproj中引用的,如下所示: ..\..\lib\Foo.dll ..\..\lib\Bar.dll MyClassLibrary.csproj依次从MyApp.csproj引用 当我构建MyApp时,两个DLL都被复制到MyClassLibrary/

我有两个.NET标准库,编译为Foo.dll和Bar.dll。条形图包含对Foo的引用。在我的解决方案中,我有一个.NET标准类库MyClassLibrary.csproj,其中包含引用这两个DLL的代码。它们是从MyClassLibrary.csproj中引用的,如下所示:

..\..\lib\Foo.dll ..\..\lib\Bar.dll MyClassLibrary.csproj依次从MyApp.csproj引用

当我构建MyApp时,两个DLL都被复制到MyClassLibrary/bin/Debug/netstandard2.0。但是,只有Bar.dll被复制到MyApp/bin/Debug/netcoreapp2.1,结果是在运行时出现错误,无法加载文件或程序集“Foo…”。另一方面,如果我删除MyClassLibrary中调用Bar的一行代码,MyApp最终会引用Foo.dll而不是Bar.dll


如何强制将两个DLL复制到应用程序输出目录?我已尝试在Visual Studio中设置true Copy local,并在这两个文件上设置CopyToOutputDirectory,但均无效。

如果直接在文件系统上引用类库,则不会自动引入类库使用的库。有两种选择:

MyApp中的1个参考Foo和Bar

2为MyClassLibrary创建一个Nuget包,您可以在其中包含或指定依赖项

编辑。因为您正在属性->包下使用.NET标准,所以可以生成Nuget包。 如果你不想把它上传到某种形式的feed,你可以使用Nuget的本地feed