【发布时间】:2017-10-25 23:27:09
【问题描述】:
我非常喜欢跨几个程序集分离功能,例如数据提供者的外观、数据提供者的合同和数据提供者实现本身......在我看来,它可以很容易地对单个组件进行单元测试一个功能,并且在未来很容易换出一个东西(在我的例子中,它使数据提供者很容易换出)。
如果我创建一个包含 3 个项目的解决方案并使用项目引用,则当我在条目程序集上进行 dotnet-build 时,所有引用都将复制到输出文件夹。当我 dotnet 打包入口程序集项目以创建 NuGET 包时,NuGET 程序包中仅包含入口程序集(不是合同或数据提供者)
这似乎是设计使然; .NET Core dotnet-pack 的 documentation 声明
项目到项目的引用未打包在项目中。 目前,如果您有项目到项目的依赖关系,则每个项目都必须有一个包。
我的问题是 - 为什么会这样?如果我想将我的代码分成逻辑程序集,我不得不创建单独的 NuGET 包并引用它们,或者只是将我的所有代码集中到一个程序集中。有没有办法在 NuGET 包中包含项目引用?
我使用的是 VS2017 / .NET Core v1.1(csproj,不是 xproj)
【问题讨论】:
-
至于“为什么”,当文档说您“当前”必须做某事时,通常意味着开发人员没有时间实现该功能。
-
@svick 哦,这很愤世嫉俗(但可能是对的!)我将把这篇文章打开一段时间,以防出现某种方式解决 1 程序集/NuGET 包的限制不久的将来。
标签: c# .net-core nuget-package project-reference