【问题标题】:NuGet Dependency not getting installed未安装 NuGet 依赖项
【发布时间】:2016-12-02 07:03:36
【问题描述】:

我想要达到的目标: 我们有一个 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 pack”,所有依赖项的 *.nupkg 文件和我的 *.nuspec 文件位于同一文件夹中
  • 为我们的本地 NuGet 服务器创建了一个带有 packageSources-Items 的 NuGet.config 文件

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

【问题讨论】:

    标签: nuget nuget-spec


    【解决方案1】:

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

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

    【讨论】:

    • 知道了。错误的期望。正如附加信息:我们希望在构建过程中使用该包,而不是直接在 Visual Studio 中。但是将所有依赖项添加到 packages.config 中当然可以解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2016-03-14
    • 2016-07-29
    • 2018-06-21
    • 2017-10-31
    相关资源
    最近更新 更多