11

プロジェクト間で特定の機能と拡張機能を共有するために使用するプライベート NuGet パッケージ フィードを実行しています。Visual Studio では問題なく動作しますが、最近、Visual Studio Online で自分のプロジェクトの 1 つで継続的インテグレーション ビルドをセットアップし始めたところ、VSO がプライベート フィードを表示できないようです。

私は新しいパッケージの復元方法を使用しています.VSオプションで「不足しているパッケージのダウンロードをNuGetに許可する」チェックボックスを設定する方法です。ソリューション コンテキスト メニューの [NuGet パッケージの復元を有効にする] オプションは使用しません

また、プロジェクト ファイルを変更するようなこともしていません。ビルド定義エディターの下にある [ビルド プロセス テンプレート] ドロップダウンから選択するだけで、任意のプロジェクトに適用できるように、カスタム ビルド定義 (XAML ワークフローのものを使用) を使用しています。ホスティング サーバーへの自動展開を容易にするビルド後のスクリプトなど、さまざまな手順を追加しているため、このようにしています。これらの手順の一部は少し複雑なので、ビルド プロセスに残しておけば、一度設定するだけで済みます。

では、nuget.exe をソリューション フォルダーに配置する古いコンテキスト メニュー ソリューションを使用せずに、またプロジェクト自体をいじらずに、VSO のビルドを取得してプライベート フィードからパッケージを復元するにはどうすればよいでしょうか?

ビルド ワークフロー テンプレートには、コマンドライン引数を取ることができるアクティビティ "NuGetRestore" があります。以下を追加しました。

"-source https://www.nuget.org/api/v2/ http://www.example.com/nuget"

しかし、それは違いを生むようには見えません。このアクティビティには、「NuGet パッケージの復元が必要なソリューションを指定する」フィールドもありProjectsToBuild、ビルドを定義するときに設定される変数に設定しました。nuget.exe からエラーは発生しません (少なくとも、エラーは表示されません) が、ビルドは失敗します。興味深いことに、関連する名前空間が存在しないと表示されており、参照を解決できないと表示されているわけではありません。何か案は?

4

1 に答える 1