NuGet包依赖未能安装

3
我想实现的目标: 我们有一个包含许多程序集的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服务器安装它们,而且没有任何错误消息。

为了进行一些研究(但没有成功),我已经尝试:

  • 使用同一文件夹中所有*.nupkg文件调用"nuget pack"与我的*.nuspec文件
  • 创建了一个NuGet.config文件,其中包含packageSources项目指向我们本地的NuGet服务器

也许有人能指出正确的解决方案?似乎在打包时我漏掉了一些东西,或者NuGet无法在安装过程中解析依赖项。

1个回答

4

命令nuget.exe install packages.config不会更新packages.config文件。该命令只是将在packages.config文件中定义的NuGet包下载到一个目录中,它不会下载除非这些依赖项是在packages.config文件中明确列出的。

为了测试NuGet包是否安装了正确的依赖关系,您应该使用Visual Studio进行安装。


明白了。期望有误。额外提供一些信息:我们想在构建过程中使用该软件包,而不是直接在Visual Studio中使用。但将所有依赖项添加到packages.config中当然解决了这个问题。 - Michael Beck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接