TeamCity On-Premises 2026.2 Help

.NET

TeamCity .NET ビルドステップでは、.NET (Core) および .NET Framework をターゲットとする任意のアプリケーションをビルド、テスト、デプロイできるほか、NuGet パッケージのダウンロードとプッシュもできます。

.NET の構成とパイプラインでのステップ

クラシックビルド構成では、.NET は、選択した コマンドに応じて設定が変化する単一のビルドステップです。

.NET コマンドの選択

パイプラインでは、これらの各コマンドは個別のビルドステップとして使用できます。

.NET のパイプライン内ステップ

エージェント要件

.NET ステップでは、ビルドエージェントマシンに次のソフトウェアがインストールされている必要があります。

コマンド

必要なソフトウェア

.NET CLI コマンド
(クロスプラットフォーム msbuild および vstest を含む)

msbuild.exe を介した msbuild コマンド
(Windows のみの MSBuild バージョンが選択されている場合)

  • Visual Studio (バージョン 2010 以降)
    または

  • Visual Studio ビルドツール (2010 以降)
    または

  • .NET フレームワーク Developer Pack(バージョン 4.5 以降)と .NET SDK

VSTests.Console.exe を介した vstest コマンド
(Windows のみの VSTest バージョンが選択されている場合)

  • Visual Studio (バージョン 2010 以降)

devenv コマンド

  • Visual Studio (バージョン 2010 以降)

.NET バージョン検出アルゴリズム

TeamCity は、次の順序で .NET 実行可能ファイルを検索します:

  1. TeamCity エージェントの環境変数 DOTNET_HOME で定義されたディレクトリ内。 例: DOTNET_HOME=D:\SDK\dotnet\

  2. .NET 実行可能ファイルのデフォルトディレクトリ:

    • Windows: C:\Program Files\dotnet または C:\Program Files (x86)\dotnet 、または他のデフォルトのプログラムファイルディレクトリ (環境変数 ProgramW6432 に応じて)

    • Unix: /usr/share/dotnet

    • Mac: /usr/local/share/dotnet

  3. パス 環境変数で指定されたパス内。

TeamCity は、最初に見つかった .NET バージョンを使用します。 複数の .NET バージョンがインストールされている場合は、 DOTNET_HOME 変数に最新バージョンを指定することをお勧めします。

ステップ設定

.NET ステップ設定のリストとそれに対応する UI ラベルは、ビルド構成を構成するかパイプラインを構成するかによって若干異なります。

メイン設定

コマンド

次のいずれかのコマンドを選択できます。

プロジェクト

プロジェクトとソリューションへのパスを改行で区切ったリストです。 * ワイルドカードをサポートしています。 パラメーター参照はサポートしていません。

作業ディレクトリ

ビルドステップが開始されるディレクトリです。 デフォルトでは、エージェントがリモートソースをチェックアウトするルートディレクトリと同じです。 詳細については、次のトピックを参照してください: ビルド作業ディレクトリ

フレームワーク

ターゲットフレームワーク。 例: netcoreapp または netstandard。 パラメーター参照をサポートします。

必須 SDK

ビルドエージェントにインストールする必要がある SDK のスペース区切りのリスト。 例: 8 4.8.2

これらがないエージェントは、このビルドを実行するには 互換性がないとみなされます。

構成

ターゲット構成。 例: リリース または デバッグ。 パラメーター参照をサポートします。

ランタイム

ターゲットランタイム。 パラメーター参照をサポートします。

指定された プロジェクトファイルランタイム ID が記載されている場合は、 Switch to the Sakura UI ボタンをクリックしてこのランタイムをすぐに選択できます。

オプション

特定のコマンドに使用できる追加オプション。

  • プロジェクトをビルドしない — プロジェクトを最初にビルドせずに公開またはテストできます。

  • 単一のセッションでテストを実行 — 複数のテストアセンブリが テスト または vstest コマンドのターゲットとしてリストされている場合、TeamCity はターゲットごとに個別のテストコマンドを呼び出せます。

NuGet パッケージソース

復元中に使用する NuGet パッケージソース。

出力ディレクトリ

出力を配置するディレクトリ。 パラメーター参照をサポートします。

バージョンサフィックス

プロジェクト内の $(VersionSuffix) プロパティの値。 パラメーター参照をサポートします。

コマンドラインパラメーター

dotnet コマンドの 追加のコマンドラインパラメーター

ログの詳細度

次のいずれかのログ詳細モードを選択できます。

  • <デフォルト>

  • 最小

  • 通常

  • 詳細

  • 診断

'msbuild' コマンドオプション

msbuild コマンドは、Microsoft ビルドエンジンを使用してプロジェクトとそのすべての依存関係をビルドするために使用されます。 選択した MSBuild のバージョンに応じて、 msbuildクロスプラットフォームの .NET CLI コマンドまたは Windows のみの msbuild.exe ツールとして実行できます。

msbuild コマンドは、.NET ランナーの基本的な CLI コマンドといくつかの共通オプションを共有します (詳細については、 対応するセクションを参照してください)。

サポートされている MSBuild バージョン: 4 以降 / 12 以降。

ターゲット

スペースまたはセミコロンで区切られたターゲットのリストです。 ターゲットとは、プロジェクトで使用する任意のスクリプトです。 フィールドの横にあるリストアイコンをクリックすると、利用可能なターゲットが表示されます。

MSBuild バージョン

インストールされている MSBuild エンジンのバージョン。 特定のバージョンのネイティブ MSBuild が使用されるようにするには(たとえば Docker コンテナー内など)、 パス 環境変数に MSBuild.exe へのパスを設定する必要があります。 詳細については、 エージェント要件 セクションを参照してください。

このフィールドにバージョンを設定し、 現在のステップをコンテナー内で実行することを選択した場合は、 パス 環境変数に MSBuild.exe へのパスを指定してください。 これにより、.NET ランナーは Docker コンテナー内でも必要な実行ファイルを見つけることができるようになります。

'vstest' コマンドオプション

vstest コマンドは、VSTest エンジンでプロジェクトをテストし、テスト結果を自動的にインポートするために使用されます。 選択した VSTest バージョンに応じて、 vstestクロスプラットフォームの .NET CLI コマンドまたは VSTest コンソール(英語)として実行できます。

サポートされている VSTest バージョン: 2013 以降。

テストアセンブリ

テストを実行するアセンブリへのパス (ビルドチェックアウトディレクトリからの相対パス) を改行で区切ったリスト。 ワイルドカードをサポートします。

除外されたテストアセンブリ

改行区切りのパスのリスト (ビルドチェックアウトディレクトリからの相対パス) で、 vstest コマンドが無視するアセンブリへのパスです。 ワイルドカードをサポートします。

VSTest バージョン

使用する VSTest のバージョン。 詳細については、 エージェント要件 のセクションを参照してください。

プラットフォーム

ターゲットプラットフォーム。 例: x86 アーキテクチャx64 、または ARM<自動> のままにして、VSTest にプラットフォームを自動的に選択させます。

単独で実行

TeamCity が分離されたプロセスでテストを実行できるようにします。

テストフィルタリング

次のテストろ過モードのいずれかを選択できます。

  • テスト名 — 含まれているアセンブリで検出されたすべてのテストのうち、指定された値と一致する名前のテストのみが実行されます。 値が複数ある場合は、新しい行で区切ります。 フィールドが空の場合、すべてのテストが実行されます。 詳細は Microsoft のドキュメントを参照してください。

  • テストケースフィルター — 指定された式に一致するテストを実行します。 詳細は Microsoft のドキュメントを参照してください。

関連事項: 選択した単体テストを実行する

テスト再試行回数

テストが失敗した場合、TeamCity は同じビルド実行中にそのテストの自動再実行をシームレスに開始できます。 失敗したテストは、成功するか、最大試行回数に達するまで再起動されます。 この手法により、 不安定なテストを特定し、起動試行回数に関係なく一貫して失敗する本当に問題のあるテストと区別できます。

最初は失敗したが、その後の再実行で正常に終了したテストは自動的にミュートされます。 ビルド結果ページの テストタブを確認して、各テストに必要だった再実行回数を確認できます。

再実行中の不安定なテスト
設定ファイル

.runsettings ファイルへのパス。

'devenv' コマンドオプション

.NET ランナーは、 devenv コマンドで Visual Studio コマンドラインモードをサポートします。

Devenv を使用すると、IDE のカスタムオプションを構成し、さまざまな スイッチを使用してコマンドラインからプロジェクトをビルド、デバッグ、デプロイできます。

devenv は、.NET ランナーの基本的な CLI コマンドといくつかの共通オプションを共有します (詳細については、 対応するセクションを参照してください)。

ビルドアクション

サポートされている値のいずれか:

  • クリーン

  • リビルド

  • ビルド

  • デプロイ

Visual Studio バージョン

インストールされている Visual Studio のバージョン。 <任意> では最新のバージョンを使用します。

詳細については、 エージェント要件 のセクションを参照してください。

コンテナー設定

このビルドステップは、Docker または Podman によってデプロイされたコンテナー内で実行できます。

クラシックビルド構成ステップでは、イメージ名、プラットフォーム、追加の実行引数を指定できる一連のプロパティが表示されます。 イメージを明示的にプルにより、このステップが実行されるたびに TeamCity がターゲットコンテナーからイメージを確実にプルします。

Dk docker container settings

指定されたイメージを検索するレジストリを TeamCity に指定するには、プロジェクトに Docker/Podman 接続を追加します。 デフォルトでは、この接続により TeamCity は Docker Hub から匿名モードでイメージをプルできますが、任意のコンテナーレジストリ向けに設定できます。

詳細については、次の記事を参照してください: コンテナーラッパー

コンテナー内でステップを実行するには、 Docker で実行をオンに切り替えます。 有効にすると、この要素に 2 つのオプションが表示されます。

コンテナー内でパイプラインステップを実行
  • Docker イメージ — Docker または Podman レジストリからイメージをプルできます。 デフォルトでは、TeamCity は Docker Hub イメージを匿名モードでプルできます。 その他の場合 (プライベートイメージ、カスタムイメージレジストリ、Docker Hub のレート制限に違反しないようにする非匿名モード) は、パイプラインまたはジョブレベルで Docker 統合を構成します。

  • Dockerfile — Dockerfile からカスタムイメージをビルドできます。

    コードカバレッジ

    JetBrains dotCover は、 msbuildテストvstest 、および多数のカスタムコマンドのカバレッジツールとしてサポートされています。 複数の個別の .NET ランナーによって生成されたスナップショットを 1 つの統合レポートにマージするには、構成に dotCover を追加します。

    カスタムコマンド

    .NET ステップでは、任意のカスタム .NET コマンドまたは実行ファイルをそのまま起動できます。 これを行うには、ビルドステップの コマンド 設定で <カスタム> を選択します。

    このコマンドは、次の固有の設定をサポートします。

    実行可能ファイル

    実行するファイルのリスト(改改行コード)。 サポートされているファイル拡張子は .com.exe.cmd.bat.sh.DLL と、拡張子のないファイルです。

    コマンドラインパラメーター

    指定された実行可能ファイルを補完するカスタムコマンドまたは引数のリスト。

    入力した設定に応じて、.NET ランナーは各カスタムコマンドを透過的に処理します。 一般的な使用例については、次のリストを参照してください。

    ユースケース

    実行可能ファイル

    コマンドラインパラメーター

    結果

    指定された .NETCore ツールをマシンに インストール(英語)します

    tool install \<ツール名\>

    指定されたパラメーターで dotnet を実行します。 例: Windows では dotnet.exe tool install <ツール名>

    引数を使用して .NET アプリケーションを実行する

    MyApp.dll

    -arg1 arg2 arg3

    MyApp.dll -- arg1 arg2 arg3 を実行します。

    ユーザーを表示する

    whoami.exe

    Windows whoami.exe プロセスを実行します。

    コンソールを介して XUnit テストを実行する

    C:\XUnit\xunit.console.exe

    C:\TestAssemblies\MyTests.dll -xml C:\TestResults\MyTests.xml

    Windows で xunit.console.exe を介して XUnit テストを実行します。 このケースは、コードカバレッジ統計の収集によく使用されます。

    scripts ディレクトリ内のすべての CMD ファイルを同じ引数で実行します

    scripts/*.cmd

    arg1 arg2

    デフォルトの Windows コマンドラインインタープリター cmd.exe を使用して、指定されたディレクトリ内のすべての .cmd スクリプトを同じパラメーターセット arg1 arg2 で実行します。

    同じ引数で SH ファイルを実行する

    ビルドソース
    ビルドドキュメント

    -c リリース

    /bin/sh を使用して、指定された両方の .sh スクリプトを同じパラメーター -c リリース で実行します。

    プライベート NuGet フィードでの認証

    TeamCity では、プライベート NuGet フィードを使用して認証できます。 さらに読む NuGet

    エージェントによって報告されるパラメーター

    起動時に、ビルドエージェントは次のパラメーターを報告します。

    DotNetCLI

    .NET CLI バージョン。

    DotNetCLI_Path

    .NET CLI 実行可能ファイルへのパス。

    DotNetFramework<バージョン>[_x86|_x64]

    対応するバージョン(複数可)の .NET Framework ランタイムがインストールされている場合にのみ定義されます。

    DotNetFramework<バージョン>[_x86|_x64]_パス

    このパラメーターの値は、対応するフレームワークランタイムのバージョン(複数可)のパス(複数可)に設定されます。

    このパラメーターは、各メジャーリリースでインストール済みの最新バージョンに対してのみ定義されることに注意してください。 たとえば、バージョン 3.5、4.5、4.8 がインストールされている場合、このパラメーターは 3.5 と 4.8 に対してのみ定義されます。 より新しいバージョンの .NET Framework 4 が存在するため、バージョン/パラメーター 4.5 は省略されます。 そのようなバージョンを明示的に定義するには、代わりに DotNetFrameworkTargetingPack<バージョン>_Path パラメーターの使用を検討してください。

    DotNetFrameworkSDK<バージョン>[_x86|_x64]

    対応するバージョン(複数可)の .NET Framework SDK がインストールされている場合に定義されます。

    DotNetFrameworkSDK<バージョン>[_x86|_x64]_パス

    対応するフレームワーク SDK バージョンへのパス。

    DotNetFrameworkTargetingPack<バージョン>_Path

    対応する参照アセンブリ (別名 Targeting Pack) の場所へのパス。

    DotNetCoreSDKx.x_パス

    .NET SDK バージョン。

    DotNetWorkloads_<バージョン>

    エージェントマシンにインストールされているすべての .NET ワークロード を一覧表示します。

    <バージョン> サフィックスは、インストール済み .NET SDK のバージョンです。 たとえば、バージョン 7.0.300 がインストールされている場合、エージェントは `DotNetWorkloads_7.0.300` パラメーターを報告します。

    これらの完全な SDK バージョンに加えて、エージェントは短縮された メジャー.マイナー サフィックスを持つワークロードパラメーターを報告します。 たとえば、エージェントマシンに 7.0.100、7.0.200、7.0.300 の .NET SDK がインストールされている場合、最上位の 7.0.300 バージョンを参照する DotNetWorkloads_7.0 パラメーターが報告されます。

    パラメーター値は、 <dotnet_dir>/metadata/workloads/<sdk_version>/InstalledWorkloads ディレクトリ内のフォルダーに基づく、カンマ区切りのワークロード名の文字列です。 たとえば、"android,maui-ios,wasm-tools" です。

    WindowsSDK<バージョン>

    対応するバージョンの Windows SDK がインストールされている場合にのみ定義されます。

    WindowsSDK<バージョン>_パス

    対応するバージョンの Windows SDK のパス。

    VS<バージョン>

    対応するバージョン(複数可)の Visual Studio がインストールされている場合に定義されます

    VS<バージョン>_パス

    Visual Studio インストールフォルダー (devenv.exe を含むディレクトリ) へのパス。

    teamcity.dotnet.nunitlauncher<バージョン>

    スタンドアロンの NUnit テストランチャー NUnitLauncher.exe を含むディレクトリへのパス。 バージョン番号は、テストが実行される .NET Framework のバージョンを指します。 バージョンは .NET Framework のバージョンと等しくなります。

    teamcity.dotnet.nunitlauncher.msbuild.task

    MSBuild、Visual Studio (sln) 用の NUnit タスクを提供する MSBuild タスク dll を含むディレクトリへのパス。

    teamcity.dotnet.msbuild.extensions2.0

    MSBuild 2.0 リスナーとタスクアセンブリを含むディレクトリへのパス。

    teamcity.dotnet.msbuild.extensions4.0

    MSBuild 4.0 リスナーとタスクアセンブリを含むディレクトリへのパス。

    非推奨ランナーから .NET ランナーへの移行

    MSBuild ランナーからの移行

    TeamCity 2019.2.3 以降、MSBuild エンジンを使用してプロジェクトをビルドするには、.NET ランナーが推奨される方法です。 .NET プラットフォーム開発戦略の長期サポートを確保するために、リファクタリングされた .NET ランナーに msbuild コマンドを追加しました。

    既存のビルド構成の MSBuild の歩数を .NET ランナーに安全に切り替えることができます。 すべての追加のコマンドラインパラメーターと他の重要な設定を新しいランナーにコピーしてください。 .NET ランナーで使用可能な設定の詳細については、 msbuild セクションを参照してください。

    .NET ランナーで追加される機能は次のとおりです。

    • .NET プロジェクト用のクロスプラットフォーム MSBuild のサポート。

    • ランタイムフィールドで指定された異なるプラットフォーム用のプロジェクトをビルドする機能。

    • コンテナーラッパー 拡張機能を備えた Docker コンテナーでプロジェクトを実行する機能。

    移行する前に、次の点を考慮してください。

    • .NET ランナーは、デフォルトで x86 実行プラットフォームを使用します。 x86 バージョンが利用できない場合は、x64 を使用します。

    • .NET ランナーは、 dotCover に対してのみコードカバレッジを提供します。

    • Mono はこのランナーではサポートされていません。

    MSBuild ステップで Mono または NCover/PartCover のいずれかを積極的に使用している場合は、いずれかの フィードバックチャネルからお知らせください。

    Visual Studio (sln) ランナーからの移行

    Visual Studio (sln) ビルドランナーは内部で MSBuild エンジンを使用しており、TeamCity でプロジェクトをビルドする際の VS ユーザーの体験を向上させるために、いくつかの調整を提供します。 TeamCity 2019.2.3 以降、.NET ランナーは MSBuild エンジンでプロジェクトをビルドするための推奨方法であり、Visual Studio (sln) ステップのユーザーにとっても移行オプションとなります。

    一般に、既存の各 Visual Studio(sln) ビルドステップを .NET ランナーにソフトに切り替えるには、次のことを行う必要があります。

    1. Visual Studio(sln) ランナーの設定とコマンドラインパラメーターの値を覚えているか、コピーします。

    2. Visual Studio(sln) ビルドステップを .NET ランナーに切り替え、 msbuild コマンドを選択します。

    3. msbuild セクションに従ってフィールドに入力します。
      一部のフィールドは .NET ランナーで異なる対応項目を持つ点に注意してください:

      • Visual Studio のバージョンとプラットフォームの代わりに、MSBuild のバージョンを指定する必要があります。 バージョンに関するリファレンス(英語)を参照してください。

      • ソリューションへのパスは、 プロジェクトフィールドで指定する必要があります。

    msbuild への移行の詳細については、 それぞれのセクションを参照してください。

    Visual Studio Tests ランナーからの移行

    TeamCity 2019.2.3 以降、.NET ランナーは、 Visual Studio Tests ランナーの代わりに VSTest でプロジェクトをテストするための推奨方法です。 .NET プラットフォーム開発戦略を長期間サポートするために、リファクタリングされた .NET ランナーに vstest コマンドを含めました。

    選択した vstest コマンドを使用して、既存の Visual Studio テストのビルドステップを .NET ランナーに安全に移行できます。 すべての追加のコマンドラインパラメーターと他の重要な設定を新しいランナーにコピーしてください。 .NET ランナーで使用可能な設定の詳細については、 vstest セクションを参照してください。

    .NET ランナーで追加される機能は次のとおりです。

    • .NET プロジェクト用のクロスプラットフォーム VSTest のサポート。

    • デフォルトでは、リアルタイムのテストレポート。

    • x86 および x64 に加えて、ARM プラットフォームのサポート。

    • コンテナーラッパー 拡張機能を備えた Docker コンテナー内でプロジェクトを実行およびテストする機能。

    移行する前に、次の点を考慮してください。

    • .NET ランナーは、VSTest 設定ファイルの新しい .runsettings 形式をサポートしています。 ただし、Visual Studio テストランナーで使用されている古い実行構成ファイル形式はサポートしていません。

    • フレームワークバージョンの代わりに、.NET ランナーは VSTest バージョンを指定するように要求します。

    • .NET ランナーは、 dotCover に対してのみコードカバレッジを提供します。 MSBuild ステップで NCover または PartCover を積極的に使用している場合は、いずれかの フィードバックチャネルからお知らせください。

    • .NET ランナーは、そのフレームワークのすべての機能が VSTest でカバーされているため、MSTest ツールをサポートしていません。 Visual Studio テストランナーのエンジンとして MSTest を使用していた場合は、.NET ランナーに移行するときに VSTest に切り替えることをお勧めします。

    並列テスト

    .NET ランナーが テスト または vstest コマンドを実行する場合、TeamCity はワークロードを複数のバッチに分割できます。 この場合、テストは別の自動生成ビルド (別のビルドエージェント上) で実行されます。 この動作を有効にするには、 並列テスト ビルド機能を TeamCity ビルド構成に追加します。

    .NET ランナー FAQ

    スペースを含むパラメーターを渡す方法

    スペース文字を含むパラメーター値を渡す最適な方法は、 システムプロパティを使用することです。 たとえば、 ビルド構成設定 | パラメーターAny CPU 値を持つ system.Platform パラメーターを追加し、その後 .NET ステップ内でこの値を %system.Platform% として参照できます。

    別の方法は、コマンドラインパラメーターを "/p:Platform=Any CPU" のようにラップすることです。

    2026 年 9 月 11 日