我想要实现的目标: 我们有一个C#解决方案,需要创建一堆程序集。我想创建一个NuGet包,其中包含解决方案创建的所有程序集(您可以将其称为“解决方案范围”程序包)。包也应该安装包含的程序集的所有依赖项。
到目前为止我做了什么: 我自己创建了一个* .nuspec文件(因为我不能使用* .csproj方法,因为包应该包含完整解决方案中的所有程序集)。它包含所有依赖项(缩写示例 - 未使用依赖项组):
<dependencies>
...
<dependency id=Insight.Itk.x64" version="2.4.8.0" />
<dependency id=Intel.Ipp.x64" version="6.1.2.041" />
...
</dependencies>
我使用NuGet 2.8.1创建了包,并将其发布在我们的本地NuGet服务器上。 * .nuspec文件中依赖项的所有NuGet包也已在该服务器上发布。
有什么问题?现在当我安装软件包时,我希望我的NuGet软件包的程序集安装在和程序包依赖项中的程序集中。第一个发生顺利,但没有安装依赖包。我尝试使用命令
进行安装nuget.exe install packages.config -source http://path-to-nuget-server -o C:\install_path
其中packages.config仅包含我发布的包。
当我尝试使用包含所有包作为包的packages.config文件的相同命令安装依赖程序集时,它会从我们的NuGet服务器安装它们,而根本没有任何错误消息。
我已经尝试过一些研究(没有成功)的目的是:
也许有人可以指出我正确的解决方案?看起来我在打包时遗漏了一些东西,或者NuGet无法解决安装时的依赖关系。
答案 0 :(得分:4)
命令nuget.exe install packages.config
不会更新packages.config文件。该命令所做的就是将packages.config文件中定义的NuGet包下载到目录中。它不会下载任何依赖项,除非它们在packages.config文件中明确列出。
要测试您的NuGet包,请安装正确的依赖项,您应该使用Visual Studio安装它。