3

私が達成したいこと: 作成するアセンブリの束を持つ C# ソリューションがあります。ソリューションによって作成されたすべてのアセンブリを含む NuGet パッケージを作成したいと考えています (「ソリューション全体」のパッケージと呼ぶことができます)。パッケージは、含まれているアセンブリのすべての依存関係もインストールする必要があります。

これまでに行ったこと: *.nuspec-file をすべて自分で作成しました (パッケージには完全なソリューションのすべてのアセンブリが含まれている必要があるため、*.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-file 内の依存関係のすべての NuGet パッケージも、そのサーバーで公開されています。

どうしたの?パッケージをインストールすると、NuGet パッケージのアセンブリがインストールされ、パッケージの依存関係からアセンブリがインストールされることを期待していました。最初のものはスムーズに起こりますが、依存パッケージはインストールされていません。コマンドを使用してインストールしようとしました

nuget.exe install packages.config -source http://path-to-nuget-server -o C:\install_path

packages.config には、公開したパッケージのみが含まれています。

パッケージとしてすべてを含む packages.config ファイルと同じコマンドを使用して依存アセンブリをインストールしようとすると、NuGet サーバーからインストールされ、エラー メッセージはまったく表示されません。

いくつかの研究のために(成功せずに)すでに試したことは次のとおりです。

  • 同じフォルダー内の依存関係のすべての *.nupkg-files とともに "nuget pack" と呼ばれ、私の *.nuspec-file
  • 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 に答える