2016-05-05 18 views
1

私は、Visual Studio Team Servicesを使用して、ナゲットパッケージの作成を自動化しています。このパッケージは、別のナゲットパッケージ(Newtonsoft.Json v8.0.3)に依存しています。Nuget Packagerのタスク依存性が追加されない

Nuget Packager task configuration

をしかし、生成されたパッケージは、nugetパッケージへの参照が含まれていません:私は、ビルドの一部としてNugetパッケージャのタスクを設定している

次のスクリプトを実行

Generated nuget package without dependencies

私のローカルマシンでパッケージを生成する:

nuget pack myproject.csproj -Symbols -IncludeReferencedProjects -Properties Configuration=Release -OutputDirectory bin/Release 

私は、生成されたパッケージに追加されます。

Generated nuget package with dependencies

私はここで何をしないのですか?なぜビルドサーバーで生成されているパッケージに依存関係が追加されていないのですか?

答えて

0

パッケージが正しく作成されなかった理由が分からないにもかかわらず、私の問題の解決策を見つけました。

だから、基本的に、私は2ビルドを持っている:

  • ソリューション全体と、実行ユニットテストをコンパイルします「一般的な」ビルドなど(自動コミットのトリガー)
  • をnugetを生成するためのビルドパッケージ(マニュアル)

この問題は2番目のビルドにあります。私はローカルマシン上でパッケージを手動で作成し、ビルドサーバーにパッケージを作成することの違いを理解しようとしていましたが、ビルドサーバーではソリューションのソースコードを取得できませんでしたフォルダは.nugetです。ソリューションに40以上のプロジェクトがあることを考えると、2番目のビルドのソースコード全体を取得するのは意味がありません。しかし何らかの理由で、これは、適切にナゲットパッケージを生成するには不十分です。

  • Projectフォルダ
  • .nugetフォルダ(不足しているパッケージをインストールする/復元するときに必要)
  • だから、私の問題を解決するには、以下のファイル/フォルダのソースコードを取得することでしたソリューションファイル(mysolution.sln

0

"IncludeReferencedProjects"は、参照されたプロジェクトを参照されたナゲットパッケージではなく、ナゲットパッケージに追加するために使用されます。

参照プロジェクトを依存パッケージまたは パッケージの一部として含めます。参照されているプロジェクトに対応するnuspecファイルがある場合は、 はプロジェクトと同じ名前になり、その参照プロジェクトは が依存関係として追加されます。それ以外の場合は、参照されているプロジェクトがパッケージの一部に として追加されます。 NuGet.orgで詳しく学んでください。

別のナゲットパッケージを参照するプロジェクト用のナゲットパッケージを作成するとき。 nupkgファイルがpackagesフォルダーに存在する場合、nugetパッケージ依存関係は自動的に追加されます。問題については、ビルド定義に「NuGet Installer」タスクを追加して、ソリューション用のナゲットパッケージファイルを復元することができます。そして、あなたのプロジェクトのためのナゲットパッケージを作成すると、参照されたナゲットパッケージが依存として追加されます。

+0

こんにちはエディは、はい私は旗の意味を知って、私はちょうど私がnugetパッケージを作成しています方法を示すために私の質問に、それを含めました。 "Nuget Installer"タスクは既に存在しますが、残念ながら問題は解決しません。つまり、Newtonsoft.Jsonの依存関係は追加されません。 –

+0

@ RuiJarimba私はHosted Build Agentで自分の側で試しましたが、何の問題も見ませんでした。ところで、あなたはどのタスクを使ってナゲットパッケージを作成していますか?あなたの質問のUIは私とは異なります。 –

+0

@ RuiJarimbaそして、 "Nuget Installer"タスクと "Nuget Packager"タスクのログを共有できますか? –

関連する問題