【发布时间】:2018-08-15 06:58:21
【问题描述】:
是否可以让 Visual Studio 将引用项目的所有依赖项复制到输出路径中?
示例
在解决方案中,项目 A(库,.NET 标准)定义了一些函数,并且依赖于库 L1(通过 NuGet)和库 L2(本地 .dll,引用并复制到项目中)
项目 B(控制台应用程序)引用项目 A。
构建 B 时,输出文件夹包含 B 和 A.dll 的所有直接依赖项。 L1 和 L2 在输出中不可用。因此,程序无法正常运行。
如何强制 VS 将 L1 和 L2 也复制到 B 的输出?
到目前为止,我发现的唯一方法是将 A 打包为 NuGet,但这似乎是不必要的开销且不舒服。我想我只是忘记了其他人似乎都知道的事情......
编辑(清除示例)
我的解决方案包含两个项目。
MongoWrapper 项目
- .NET Standard 2.0 类库
- 依赖于 NuGet MongoDB.Driver 包
- 实际使用了这个依赖(没有僵尸依赖)
项目控制台用户
- .Net Framework 4.6.1 控制台应用程序
- 参考 MongoWrapper 项目
- 实际使用MongoWrapper
观察
在调试ConsoleUser 应用程序时,它会编译并启动。在运行时,当它调用 MongoWrapper 中使用 MongoDB.Driver 的方法时,应用程序崩溃,因为 MongoDB.Driver 依赖项未复制到 ConsoleUser 的输出文件夹中。
如何解决这个问题?
【问题讨论】:
-
更精确,创建一个演示 (minimal reproducible example)
-
它应该正常工作,除了可能是老式的 GAC 用法。所以请列出所有平台、版本、包等。
标签: c# visual-studio visual-studio-2017 .net-standard-2.0