3

我想要实现的目标: 我们有一个 C# 解决方案,其中包含要创建的大量程序集。我想创建一个 NuGet 包,其中包含解决方案创建的所有程序集(您可以将其称为“解决方案范围”包)。该包还应安装所包含程序集的所有依赖项。

到目前为止我所做的: 我自己创建了一个 *.nuspec 文件(因为我无法使用 *.csproj-approach,因为包应该包含完整解决方案中的所有程序集)。它包含所有依赖项(简化示例 - 未使用依赖组):

<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-file 包含所有它们作为包,它从我们的 NuGet-server 安装它们,根本没有错误消息。

我已经尝试过一些研究(没有成功)是:

  • 与我的 *.nuspec 文件在同一文件夹中的所有 *.nupkg 依赖项文件称为“nuget pack”
  • 使用 packageSources-Items 创建了一个 NuGet.config 文件到我们的本地 NuGet 服务器

也许有人可以指出我正确的解决方案?似乎我在打包时遗漏了一些东西,或者 NuGet 可能无法解决安装的依赖关系。

4

1 回答 1

4

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

要测试你的 NuGet 包安装正确的依赖项,你应该使用 Visual Studio 安装它。

于 2016-12-03T12:41:48.770 回答