1

TeamCity によって NuGet としてビルドされたコマンド ライン ツールがあります。

私の問題は、同じ TeamCity サーバー内のビルド ステップでツールを使用し、ステップの一部としてコマンド ライン ツールを実行したいということです。

最も簡単な方法は、NuGet を作成せずにコマンド ライン ツールをコンパイルしてアーティファクトを作成し、他のビルド プロセスでアーティファクトの依存関係を取得してコマンドを実行することです。

しかし、ツールを他の目的に再利用できるように、NuGet パッケージで同じことができるかどうかを知りたいですか?

更新 TeamCity でさらにテストした後、主な問題は「NuGet インストーラー」ランナーにソリューション ファイルが必要なことだと思います。powershellタスクでやりたいことができます:

# install the latest package 
%teamcity.agent.tools.dir%\NuGet.CommandLine.2.7.1.nupkg\tools\NuGet.exe install octospike-migrator -o tools -excludeversion -source %teamcity.nuget.feed.server%
# run the command line tool
.\tools\octospike-migrator\lib\Octospike.Command.exe

上記のビルドステップは意図したとおりに機能していますが、デフォルトのランナー「Nuget Installer」でこれを処理できるはずだと感じていますか?

私はTC7を実行しているので、TC8で動作する可能性があります

4

1 に答える 1

1

パッケージがソリューションで参照され、不足しているパッケージの復元が有効になっていると仮定すると、パッケージがダウンロードされ、ソリューションに解凍されます。実行可能ファイルは、既知の場所 (パッケージに指定したディレクトリ) に配置されます。これで、他のリソースと同じように実行可能ファイルにアクセスできるようになります。

リソースをアンパックする場所と方法に関して柔軟性が必要な場合 (たとえば、リソースをプロジェクト外のディレクトリに移動する必要がある場合)、これを NuGet のツール パッケージとしてビルドできます。

TeamCity では、このプロセスを別々のタスクに分割すると、複雑さが軽減されます。

于 2013-10-31T15:21:02.903 に答える