【问题标题】:How to inherit referenced assemblies in NuGet package如何继承 NuGet 包中引用的程序集
【发布时间】:2017-07-14 22:13:01
【问题描述】:
简单的问题。我有一个 NuGet 包项目。此项目引用其他类库项目(它们不是 NuGet 包)。我希望我的 NuGet 包将其引用 DLL 加载到安装包的项目中。这可能吗,还是我所有引用的类库都需要是 NuGet 包才能将它们指定为依赖项?
TIA
【问题讨论】:
标签:
c#
nuget
nuget-package
【解决方案1】:
在执行nuget pack 命令时,可以指定选项IncludeReferencedProjects。
来自文档:
表示构建的包应该包含引用的项目作为依赖项或作为包的一部分。如果引用的项目具有与该项目同名的对应 .nuspec 文件,则将该引用的项目添加为依赖项。否则,引用的项目将作为包的一部分添加。
【解决方案2】:
您可以将引用的 dll 作为文件添加到 nuspec,并且可以立即在 nuget 包中设置源路径文件和目标路径文件。接下来,您应该在 nuspec.xml 中添加对此文件的引用。它看起来像这样(我删除了其他元数据):
.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
...
<references>
<reference file="First.dll" />
<reference file="Second.dll" />
</references>
</metadata>
<files>
<file src="SomePath\First.dll" target="lib\First.dll" />
<file src="SomePath\Second.dll" target="lib\Second.dll" />
</files>
</package>