将未引用的项目包括在nuget包中

时间:2019-02-17 17:22:57

标签: visual-studio nuget nuget-package

我在为最近接手的回购创建nuget软件包时遇到了问题(以前的所有者没有提供任何帮助)。我遇到的问题是VS nuget软件包的创建似乎没有任何明确的方法将其他项目包含在软件包中。以前构建软件包的方式是有一个基本的nuget软件包(package),其中还包括package.iOS,package.Droid等中的其他一些dll。但是我不知道该如何构建。我能想到的唯一其他解决方案(如果我正确地阅读了Microsoft上的nuget文档,那是更正确的方法)是为每个项目创建一个单独的nuget包,而不是将它们全部包含在基本包中

请告知。

我完全可以创建多个更具体的nuget软件包,但是使用该库的人习惯于仅下载基本的nuget软件包,并且拥有所需的一切。

我已经研究了文档,据我所知,我可以包括引用的项目,但是基础项目不依赖于其他任何项目。

仅供参考,项目结构类似于:

project
project.forms
project.iOS
project.Droid
project.macOS
project.Uwp

project构建的nuget的先前版本中还包含project.iOS, project.Droid, project.macOS, and project.Uwp,而后者又依赖于project

在逻辑上,对我来说,似乎每个project.{}都应该有自己的软件包,因为在某人使用该软件包时可能不需要它们。只是想看看是否有一种简便的方法来继续现有模式而无需进行大量工作。

抓取 事实证明,我无法通过VS从project.{}项目中制作单个软件包。

1 个答案:

答案 0 :(得分:0)

好的,找到它了,只需要制作一个.nuspec文件,然后在nuget pack命令中引用该文件即可。

在.nuspec文件中,您需要一个<files>节点,其中需要一个<file src="...thing.dll" target="lib\..." />用于项目中需要的每个dll。就那么简单。只希望有一种方法可以在VS界面中完成,而不必使用.nuspec文件。