.NET
TeamCity .NET ビルドステップを使用すると、.NET (Core) および .NET フレームワークを対象とするアプリケーションをビルド、テスト、デプロイできるほか、NuGet パッケージをダウンロードしてプッシュすることもできます。
.NET ステップイン構成とパイプライン
クラシックビルド構成では、.NET は、選択したコマンドに応じて設定が変化する単一のビルドステップです。

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

エージェント要件
.NET ステップでは、ビルドエージェントマシンに次のソフトウェアがインストールされている必要があります。
コマンド | 必要なソフトウェア |
|---|---|
.NET CLI コマンド |
|
|
|
|
|
|
|
.NET バージョン検出アルゴリズム
TeamCity は、次の順序で .NET 実行可能ファイルを検索します。
TeamCity エージェントの環境変数
DOTNET_HOMEで定義されたディレクトリ内。例:DOTNET_HOME=D:\SDK\dotnet\.NET 実行可能ファイルのデフォルトディレクトリ:
Windows:
C:\Program Files\dotnetまたはC:\Program Files (x86)\dotnet、または他のデフォルトのプログラムファイルディレクトリ (環境変数ProgramW6432に応じて)Unix:
/usr/share/dotnetMac:
/usr/local/share/dotnet
PATH環境変数で指定されたパス内。
TeamCity は、検出した最初の .NET バージョンを使用します。複数の .NET バージョンがインストールされている場合は、DOTNET_HOME 変数に最新バージョンを指定することをお勧めします。
ステップ設定
.NET ステップ設定のリストとそれに対応する UI ラベルは、ビルド構成を構成するかパイプラインを構成するかによって若干異なります。
メイン設定
- コマンド
次のいずれかのコマンドを選択できます。
restore
( プライベートフィードの認証には .NET CLI 2.1.400+ が必要です)nuget delete
( プライベートフィードの認証には .NET CLI 2.1.500+ が必要です)nuget push
( プライベートフィードの認証には .NET CLI 2.1.500+ が必要です)devenv(Visual Studio リファレンスでさらに読む)
- プロジェクト
プロジェクトとソリューションへのパスを改行で区切ったリストです。
*ワイルドカードをサポートしています。パラメーター参照はサポートしていません。- 作業ディレクトリ
ビルドステップが開始されるディレクトリです。デフォルトでは、エージェントがリモートソースをチェックアウトするルートディレクトリと同じです。詳細については、作業ディレクトリを構築するトピックを参照してください。
- フレームワーク
ターゲットフレームワーク。例:
netcoreappまたはnetstandardパラメーター参照をサポートします。- 必要な SDK
ビルドエージェントにインストールする必要がある SDK のスペース区切りのリスト。例:
8 4.8.2これらがないエージェントは、このビルドを実行するには互換性がないとみなされます。
- 構成
ターゲット構成。例:
ReleaseまたはDebugパラメーター参照をサポートします。- ランタイム
ターゲットランタイム。パラメーター参照をサポートします。
指定されたプロジェクトファイルにランタイム ID が記載されている場合は、
ボタンをクリックしてこのランタイムをすぐに選択できます。- オプション
特定のコマンドに使用できる追加オプション。
プロジェクトをビルドしないでください — プロジェクトを最初にビルドせずに公開またはテストできます。
単一セッションでテストを実行する — 複数のテストアセンブリが
testまたはvstestコマンドのターゲットとしてリストされている場合、TeamCity は各ターゲットに対して個別のテストコマンドを呼び出すことができます。
- NuGet パッケージソース
復元中に使用する NuGet パッケージソース。
- 出力ディレクトリ
出力を配置するディレクトリ。パラメーター参照をサポートします。
- バージョン接尾辞
プロジェクト内の
$(VersionSuffix)プロパティの値。パラメーター参照をサポートします。- コマンドラインパラメーター
dotnetコマンドの追加のコマンドラインパラメーター。- ログの冗長性
次のいずれかのログ詳細モードを選択できます。
<Default>MinimalNormalDetailedDiagnostic
'msbuild' コマンドオプション
msbuild コマンドは、Microsoft ビルドエンジンを使用してプロジェクトとそのすべての依存関係をビルドするために使用されます。選択した MSBuild のバージョンに応じて、msbuild はクロスプラットフォームの .NET CLI コマンドまたは Windows のみの msbuild.exe ツールとして実行できます。
msbuild コマンドは、.NET ランナーの基本的な CLI コマンドといくつかの共通オプションを共有します (詳細については、対応するセクションを参照してください)。
サポートされている MSBuild バージョン: 4 以降 / 12 以降。
- ターゲット
スペースまたはセミコロンで区切られたターゲットのリストです。ターゲットとは、プロジェクトで使用する任意のスクリプトです。フィールドの横にあるリストアイコンをクリックすると、利用可能なターゲットが表示されます。
- MSBuild バージョン
インストールされている MSBuild エンジンのバージョン。特定のバージョンのネイティブ MSBuild が使用されるようにするには(たとえば Docker コンテナー内など)、
PATH環境変数にMSBuild.exeへのパスを設定する必要があります。詳細については、エージェント要件セクションを参照してください。このフィールドにバージョンを設定し、現在のステップをコンテナー内で実行することを選択した場合は、
PATH環境変数にMSBuild.exeへのパスを指定してください。これにより、.NET ランナーは Docker コンテナー内でも必要な実行ファイルを見つけることができるようになります。
'vstest' コマンドオプション
vstest コマンドは、VSTest エンジンでプロジェクトをテストし、テスト結果を自動的にインポートするために使用されます。選択した VSTest バージョンに応じて、vstest はクロスプラットフォームの .NET CLI コマンドまたは VSTest コンソール(英語)として実行できます。
サポートされている VSTest バージョン: 2013 以降。
- テストアセンブリ
テストを実行するアセンブリへのパス(ビルドチェックアウトディレクトリからの相対パス)の改改行コードリスト。ワイルドカードをサポートします。
- 除外されたテストアセンブリ
vstestコマンドが無視するアセンブリへのパス(ビルドチェックアウトディレクトリからの相対パス)の改改行コードリスト。ワイルドカードをサポートします。- VSTest バージョン
使用する VSTest のバージョン。詳細については、エージェント要件セクションを参照してください。
- プラットフォーム
ターゲットプラットフォーム。例:
x86、x64、ARM<Auto>のままにしておくと、VSTest がプラットフォームを自動的に選択します。- 単独で実行
TeamCity が分離されたプロセスでテストを実行できるようにします。
- テストろ過
次のテストろ過モードのいずれかを選択できます。
テスト名 — 含まれているアセンブリで検出されたすべてのテストのうち、指定された値と一致する名前のテストのみが実行されます。値が複数ある場合は、新しい行で区切ります。フィールドが空の場合、すべてのテストが実行されます。詳細は Microsoft のドキュメントを参照してください。
テストケースフィルター — 指定された式に一致するテストを実行します。詳細は Microsoft のドキュメントを参照してください。
関連事項: 選択した単体テストを実行する
- テスト再試行回数
テストが失敗した場合、TeamCity は同じビルド実行中に、そのテストの自動再実行をシームレスに開始できます。失敗したテストは、成功するか、最大試行回数に達するまで再起動されます。この手法により、不安定なテストを識別し、起動試行回数に関係なく常に失敗する本当に問題のあるテストと区別することができます。
最初は失敗したが、その後の再実行で正常に終了したテストは自動的にミュートされます。ビルド結果ページのテストタブをチェックして、各テストに必要な再実行回数を確認できます。

- 設定ファイル
.runsettingsファイルへのパス。
'devenv' コマンドオプション
.NET ランナーは、 devenv コマンドで Visual Studio コマンドラインモードをサポートします。
Devenv を使用すると、IDE のカスタムオプションを構成し、さまざまなスイッチを使用してコマンドラインからプロジェクトをビルド、デバッグ、デプロイできます。
devenv は、.NET ランナーの基本的な CLI コマンドといくつかの共通オプションを共有します (詳細については、対応するセクションを参照してください)。
- ビルドアクション
サポートされている値のいずれか:
cleanrebuildbuilddeploy
- Visual Studio バージョン
インストールされている Visual Studio のバージョン。
<Any>では最新のバージョンを使用します。詳細については、エージェント要件のセクションを参照してください。
コンテナー設定
このビルドステップは、Docker または Podman によってデプロイされたコンテナー内で実行できます。
クラシックビルド構成ステップでは、イメージ名、プラットフォーム、追加の実行引数を指定できる一連のプロパティが表示されます。明示的にイメージをプルするにより、このステップが実行されるたびに、TeamCity がターゲットコンテナーからイメージをプルすることが保証されます。

TeamCity が指定のイメージを検索するレジストリを指定するには、プロジェクトに Docker/Podman 接続を追加します。デフォルトでは、この接続により TeamCity は Docker Hub(英語) から匿名モードでイメージをプルできますが、任意のコンテナーレジストリに設定できます。
詳細については、次の記事を参照してください: コンテナーラッパー。
コンテナー内でステップを実行するには、Docker で実行をオンに切り替えます。有効にすると、この要素に 2 つのオプションが表示されます。

Docker イメージ — Docker または Podman レジストリからイメージをプルできます。デフォルトでは、TeamCity は Docker、Hub イメージを匿名モードでプルできます。その他のケース(プライベートイメージ、カスタムイメージレジストリ、Docker、Hub のレート制限に違反しない非匿名モードなど)の場合は、パイプラインまたはジョブレベルで Docker 統合を設定してください。
Dockerfile — Dockerfile からカスタムイメージを構築できます。
コードカバレッジ
JetBrains dotCover は、msbuild、test、vstest のカバレッジツールおよび多数のカスタムコマンドとしてサポートされています。複数の個別の .NET ランナーによって生成されたスナップショットを 1 つの統合レポートにマージするには、構成に dotCover を追加します。
カスタムコマンド
.NET ステップでは、任意のカスタム .NET コマンドまたは実行ファイルをそのまま起動できます。これを行うには、ビルドステップのコマンド設定で <custom> を選択します。
このコマンドは、次の固有の設定をサポートします。
- 実行可能ファイル
実行するファイルのリスト(改改行コード)。サポートされているファイル拡張子は
.com、.exe、.cmd、.bat、.sh、.dllと、拡張子のないファイルです。- コマンドラインパラメーター
指定された実行可能ファイルを補完するカスタムコマンドまたは引数のリスト。
入力した設定に応じて、.NET ランナーは各カスタムコマンドを透過的に処理します。一般的な使用例については、次のリストを参照してください。
ユースケース | 実行可能ファイル | コマンドラインパラメーター | 結果 |
|---|---|---|---|
指定された .NETCore ツールをマシンにインストール(英語)します | ツールインストール \<toolname\> | 指定されたパラメーターで | |
引数を使用して .NET アプリケーションを実行する | MyApp.dll | -arg1 arg2 arg3 | |
whoami.exe | Windows | ||
コンソールを介して XUnit テストを実行する | C:\XUnit\xunit.console.exe | C:\TestAssemblies\MyTests.dll -xml C:\TestResults\MyTests.xml | Windows で |
| scripts/*.cmd | arg1 arg2 | デフォルトの Windows コマンドラインインタープリター |
同じ引数で SH ファイルを実行する | ビルドソース | -c リリース | |
プライベート NuGet フィードでの認証
TeamCity では、プライベート NuGet フィードを使用して認証することができます。さらに読む NuGet
エージェントによって報告されたパラメーター
起動時に、ビルドエージェントは次のパラメーターを報告します。
- DotNetCLI
.NET CLI バージョン。
- DotNetCLI_Path
.NET CLI 実行可能ファイルへのパス。
- DotNetFramework<バージョン>[_x86 | _x64]
.NET フレームワークランタイムの対応するバージョンがインストールされている場合にのみ定義されます。
- DotNetFramework<バージョン>[_x86 | _x64]_ パス
このパラメーターの値は、対応するフレームワークランタイムバージョンパスに設定されます。
このパラメーターは、メジャーリリースごとにインストールされている最新バージョンに対してのみ定義されます。例: バージョン 3.5, 4.5,, 4.8 をインストールした場合、このパラメーターは for 3.5 と 4.8 に対してのみ定義されます。バージョン / パラメーター 4.5 は、.NET の新しいバージョンフレームワーク 4 が存在するため省略されます。このようなバージョンを明示的に定義するには、代わりにDotNetFrameworkTargetingPack<version>_Pathパラメーターの使用を検討してください。- DotNetFrameworkSDK<バージョン>[_x86 | _x64]
.NET フレームワーク SDK の対応するバージョンがインストールされている場合に定義されます。
- DotNetFrameworkSDK<バージョン>[_x86 | _x64]_ パス
対応するフレームワーク SDK バージョンへのパス。
- DotNetFrameworkTargetingPack<バージョン>_Path
対応する参照アセンブリ(別名ターゲティングパック)の場所へのパス。
- DotNetCoreSDKx.x_Path
.NET SDK バージョン。
- DotNetWorkloads_<バージョン>
エージェントマシンにインストールされているすべての .NET ワークロードをリストします。
<version>接尾辞は、インストールされている .NET SDK のバージョンです。たとえば、バージョン 7.0.300 がインストールされている場合、エージェントは `DotNetWorkloads_7.0.300` パラメーターを報告します。
これらの完全な SDK バージョンに加えて、エージェントは短縮されたmajor.minor接尾辞を持つワークロードパラメーターを報告します。例: エージェントマシンに 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 フレームワークのバージョンを示します。バージョンは、.NET フレームワークのバージョンと同じです。- teamcity.dotnet.nunitlauncher.msbuild.task
MSBuild、Visual Studio (sln) の NUnit タスクを提供する MSBuild タスク
dllが含まれるディレクトリへのパス。- teamcity.dotnet.msbuild.extensions2.0
MSBuild2.0 リスナーとタスクアセンブリを含むディレクトリへのパス。
- teamcity.dotnet.msbuild.extensions4.0
MSBuild4.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 エンジンを使用しており、VS ユーザーが TeamCity でプロジェクトをビルドする際のエクスペリエンスを容易にするためにいくつかの調整が提供されています。TeamCity 2019.2.3 以降、.NET ランナーは MSBuild エンジンでプロジェクトをビルドするための推奨方法であり、Visual Studio (sln) ステップのユーザーにとっても移行オプションとなっています。
一般に、既存の各 Visual Studio(sln) ビルドステップを .NET ランナーにソフトに切り替えるには、次のことを行う必要があります。
Visual Studio(sln) ランナーの設定とコマンドラインパラメーターの値を覚えているか、コピーします。
Visual Studio(sln) ビルドステップを .NET ランナーに切り替え、
msbuildコマンドを選択します。msbuildセクションに従ってフィールドに入力します。
.NET ランナーでは、特定のフィールドの類似体が異なることに注意してください。Visual Studio のバージョンとプラットフォームの代わりに、MSBuild のバージョンを指定する必要があります。バージョンに関するリファレンス(英語)を参照してください。
ソリューションへのパスは、プロジェクトフィールドで指定する必要があります。
msbuild への移行の詳細については、それぞれのセクションを参照してください。
Visual Studio テストランナーからの移行
TeamCity 2019.2.3 以降、.NET ランナーは、Visual Studio テストランナーの代わりに 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 ランナーが test または vstest コマンドを実行する場合、TeamCity はワークロードを複数のバッチに分割できます。この場合、テストは別の自動生成ビルド (別のビルドエージェント上) で実行されます。この動作を有効にするには、並列テストビルド機能を TeamCity ビルド構成に追加します。
.NET ランナー FAQ
スペースを含むパラメーターを渡す方法
スペース文字を含むパラメーター値を渡す最適な方法は、システムプロパティを使用することです。例: ビルド設定 |Parameters に Any CPU 値を含む system.Platform パラメーターを追加し、.NET ステップ内でこの値を %system.Platform% として参照できます。
別の方法は、コマンドラインパラメーターを "/p:Platform=Any CPU" のようにラップすることです。
関連ページ:
ビルド構成の作成と編集
ビルド構成とパイプラインは、実際の CI/CD ルーチンを表します。ビルド構成には、一連のビルドステップ(ビルド実行中に実行される基本操作)と、これらのステップの実行に必要な設定が格納されます。これらの設定には以下が含まれます。構成の動作をすばやく変更できるパラメーター。特定の条件が満たされたときに TeamCity が自動的に新しいビルドを開始できるようにするトリガー。構成の機能を拡張する機能を構築します。特定のビルドエージェントで構成ビルドを実行できるようにするエージェント要件。その他。ビル...
パイプラインの作成と編集
パイプラインは、従来のビルド構成に代わる、ユーザー中心の簡素化された代替手段です。チェーンビルドは TeamCity 2025.07 以降で利用可能です。現在早期アクセス段階であり、潜在的な問題が発生する可能性があるため複雑な設定には推奨されませんが、実験的段階ではないため、小規模で要求の少ないプロジェクトであれば本番環境で安全に使用できます。パイプラインとビルド構成とチェーン:パイプラインの作成に進む前に、ビルド構成とパイプラインの違い、それぞれをいつ使用するかを理解することが重要です。パイ...
TeamCity Slack 行動規範
JetBrains TeamCity Slack は、性別、性的指向、機能、民族、社会経済的地位、宗教 (または宗教の欠如) に関係なく、すべての人にとってフレンドリーで安全かつ歓迎的な環境を提供することに専念する包括的な空間を目指しています。これを実現するには、私たち全員が一連の基本的なガイドラインに従うことが重要であり、最も重要なのは行動規範を遵守することです。この行動規範と基本的な使用ガイドラインを必ず最後まで参照してください。これは、スクロールして盲目的に同意する必要がある通常の使用許諾契...
エージェント要件の設定
エージェントの要件は、ビルド構成を実行できるエージェントを指定する条件です。現在存在するすべての要件を表示して新しい要件を作成し、特定の構成を実行できるエージェントを確認するには、ビルド設定 | エージェント要件にアクセスしてください。エージェント要件ビデオガイド:要件構文:エージェント要件は式です。ここは、定義済みまたはカスタム (ユーザー定義) のビルドパラメーターです。例: エージェントにインストールされているオペレーティングシステムを報告するパラメーター。要件では、エージェントがこの特...
ビルドとテストの失敗への対処
ビルドの実行中、通常、次のいずれかの種類の障害が発生する可能性があります。テストの失敗 - ビルド中に試行されたユニットテストまたは機能テストの失敗。ビルドの問題 - ビルド中に発生したその他の問題: リモートリポジトリにアクセスできない、ビルドアーティファクトの取得またはアップロードに失敗する、コンパイルエラーなど。ビルドの問題を表示:TeamCity では、ビルドの問題を検出して調査する方法が複数あります。ビルド結果ページビルド結果ページには、この個々のビルド実行に関する最も詳細な情報が表示さ...
ビルド結果ページ
TeamCity では、ビルドに関するすべての情報 (キューに入っているか、実行中か、完了しているかに関係なく) がビルド結果ページに蓄積されます。ビルド結果を表示するには、任意の構成を選択してビルド履歴を表示し、必要なビルド番号をクリックします。このページには、いくつかの静的タブ (概要、変更、ビルドログ、アーティファクトなど) と、特定の構成機能に応じて表示が決まるコンテキストタブが含まれます。例: 依存関係タブは、親構成がビルドチェーンに属するビルドに対してのみ表示されます。内部ビルド ID...