如何从 NuGet 包中私下引用另一个项目?
How to privately reference another project from a NuGet package?
我正在寻找一种方法来 'privately' 引用 MSBuild 项目,这样它就不会显示给 NuGet 包的用户。例如,假设我有两个库,LibFoo 和 LibBar。它们被组织在一个单一的解决方案下,如下所示:
Foobar.sln
|
---- LibFoo.csproj
|
---- LibBar.csproj
现在,假设 LibFoo 引用 LibBar。当我去构建 LibFoo 时,也构建了 LibBar。生成的二进制文件都包含在 LibFoo 的输出目录中。当我 nuget pack
它们并将所有内容作为 NuGet 包的一部分包含在目录中时,LibBar 的二进制文件也包含在内。
最后,当最终用户安装 LibFoo 时,NuGet 会继续并引用包中的所有内容,包括 LibBar。
有什么办法可以防止这种情况发生吗?
我想直接排除一个dll是不可能的,但你可以明确指定应该引用哪些程序集。这反过来会做你想要的,因为所有未指定的程序集都不会添加为参考。
我正在寻找一种方法来 'privately' 引用 MSBuild 项目,这样它就不会显示给 NuGet 包的用户。例如,假设我有两个库,LibFoo 和 LibBar。它们被组织在一个单一的解决方案下,如下所示:
Foobar.sln
|
---- LibFoo.csproj
|
---- LibBar.csproj
现在,假设 LibFoo 引用 LibBar。当我去构建 LibFoo 时,也构建了 LibBar。生成的二进制文件都包含在 LibFoo 的输出目录中。当我 nuget pack
它们并将所有内容作为 NuGet 包的一部分包含在目录中时,LibBar 的二进制文件也包含在内。
最后,当最终用户安装 LibFoo 时,NuGet 会继续并引用包中的所有内容,包括 LibBar。
有什么办法可以防止这种情况发生吗?
我想直接排除一个dll是不可能的,但你可以明确指定应该引用哪些程序集。这反过来会做你想要的,因为所有未指定的程序集都不会添加为参考。