TeamCity 2020.1ヘルプ

.NET

TeamCityには、.NETビルドステップ、ビルドエージェントでの.NET検出、およびリポジトリ内のビルドステップの自動検出を提供する.NETツールチェーンの組み込みサポートが付属しています。

This page gives details on configuring the .NET runner.

要件

.NETランナーを使用するには、ビルドエージェントマシンに次のソフトウェアをインストールする必要があります。

コマンド

必要なソフトウェア

.NET CLIコマンド
(including cross-platform msbuild and vstest )

msbuild command via msbuild.exe
(if Windows-only MSBuild version is selected)

  • Visual Studio (version 2013 or later)
    or

  • Visual Studio Build Tools (2013 or later)
    or

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

vstest command via VSTests.Console.exe
(if Windows-only VSTest version is selected)

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

devenv コマンド

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

.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. PATH 環境変数で指定されたパス内。

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

ビルドランナーオプション

現在、.NETランナーは次のコマンドをサポートしています。

*プロジェクトのビルドにクロスプラットフォームの.NET SDKが使用されている場合は msbuild および vstestCLIコマンド(英語)として実行されます。それ以外の場合は、それぞれ msbuild または VSTest.Console ツールを使用して実行されます。

Alternatively, you can specify any custom .NET command , and TeamCity will run it as is.

基本コマンド

.NETランナーのオプションのセットは、選択したコマンドによって異なります。基本的な.NET CLIコマンドで使用可能なオプションは次のとおりです。

オプション

説明

プロジェクト

Paths to projects and solutions, new-line separated. Wildcards are supported. Parameter references are supported. If you have a finished build, you can use the file/directory selector here.

作業ディレクトリ

オプション。チェックアウトディレクトリと異なる場合に設定します。パラメータ参照がサポートされています。完成したビルドがある場合は、ここでファイル/ディレクトリセレクターを使用できます。

フレームワーク

ターゲットフレームワーク。例: netcoreapp または netstandard。パラメータ参照がサポートされています。

構成

ReleaseDebugなどのターゲット構成。パラメータ参照がサポートされています。

ランタイム

ターゲットランタイム。パラメータ参照がサポートされています。

オプション

プロジェクトをビルドしないでください」チェックボックスは、パックまたはテストの前にプロジェクトをビルドするかどうかを宣言します。

NuGetパッケージソース

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

出力ディレクトリ

出力を配置するディレクトリ。パラメータ参照がサポートされています。完成したビルドがある場合は、ここでファイル/ディレクトリセレクタを使用できます。

バージョンサフィックス

プロジェクトの $(VersionSuffix) プロパティの値。パラメータ参照がサポートされています。

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

dotnet コマンドの追加コマンド行パラメーター(英語)

ログの冗長性

使用可能なロギングモード: <Default> , Minimal , Normal , Detailedまたは Diagnostic

高度なコマンド

msbuild

The msbuild command is used for building a project and all its dependencies with the Microsoft Build Engine.
Depending on the selected MSBuild version, msbuild can either be run as the クロスプラットフォームの.NET CLIコマンド(英語) or as the Windowsのみのmsbuild.exeツール(英語)

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

MSBuild固有の設定は次のとおりです。

オプション

説明

ターゲット

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

MSBuildバージョン

インストールされているMSBuildエンジンのバージョンを指定します。詳細については、要件のセクションを参照してください。

MSBuildランナーからの移行

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

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

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

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

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

  • Dockerラッパー拡張機能を使用してDockerコンテナーでプロジェクトを実行する機能

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

  • The .NET runner uses x64 run platform by default. If the x64 version is not available, it will use x86. To force using x86 even when x64 is present, you can set the respective system property in the build configuration or add the /p:Platform=x86 command-line parameter in the build step's settings.

  • .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ランナーにソフトに切り替えるには、次のことを行う必要があります。

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

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

  3. Fill in the fields according to the msbuild section.
    Note that certain fields have different analogs in the .NET runner:
    • Visual Studioのバージョンとプラットフォームではなく、MSBuildバージョンを指定する必要があります。バージョン(英語)リファレンスを参照して(英語)ください。

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

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

vstst

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

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

VSTest固有のフィールドは次のとおりです。

オプション

説明

テストアセンブリ

Specify the new-line separated list of paths to assemblies to run tests on. ワイルドカード are supported.
Paths to the assemblies must be relative to the build checkout directory.

VSTestバージョン

インストールされているVSTestのバージョンを指定します。詳細については、要件のセクションを参照してください。

プラットフォーム

必要に応じて、ターゲットプラットフォームを指定します:x86、x64、またはARM。<オート>をそのままにして、VSTestによって選択されたプラットフォームを使用します。

単独で実行

分離されたプロセスでテストを実行することを選択します。

テストろ過

テストろ過モードを選択します。

設定ファイル

.runsettings(英語)ファイルへのパスを設定します。

Visual Studioテストランナーからの移行

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

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

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

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

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

  • ARMプラットフォームとx86およびx64のサポート

  • Dockerラッパー拡張機能を使用して、Dockerコンテナー内でプロジェクトを実行およびテストする機能

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

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

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

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

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

nuget削除

TeamCity provides full support for the nuget delete(英語) command.

Nuget Push

TeamCity provides full support for the nuget push(英語) command.

Visual Studioコマンドラインモード

TeamCity 2019.2.3以降、.NETランナーはdevenv(英語)コマンドでVisual Studioコマンドラインモードをサポートしています。

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

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

Devenv固有のフィールドは次のとおりです。

オプション

説明

ビルドアクション

サポートされているスイッチの1つを選択します: clean , rebuild , buildまたは deploy

Visual Studioバージョン

必要に応じて、インストールされているVisual Studioのバージョンを指定します。<どれでも>をそのままにして、最新のインストール済みバージョンを使用します。

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

カスタムコマンド

Since TeamCity 2020.1.1, the .NET runner allows launching any custom .NET command or executable file as is.

The runner provides the following settings for the <カスタム> command option:

The 実行可能ファイル field expects files with the .com , .exe , .cmd , .bat , .sh , .dll extensions as well as files with no extension. You can specify multiple executable files, separated by a new line.

The コマンド・ライン・パラメーター field allows entering any custom command or arguments to complement the specified executable.

Depending on the entered settings, the .NET runner will transparently treat each custom command. Refer to the following list for common use case examples:

ユースケース

実行可能ファイル

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

結果

Install(英語) the specified .NET Core tool on your machine

tool install <toolname>

Runs dotnet with the specified parameters. For example, on Windows, dotnet.exe tool install <toolname> .

Run a .NET application with arguments

MyApp.dll

-- arg1 arg2 arg3

Runs MyApp.dll -- arg1 arg2 arg3 .

Display a user(英語)

whoami.exe

Runs the Windows whoami.exe process.

Run XUnit tests via console

C:\XUnit\xunit.console.exe

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

Runs XUnit tests on Windows via xunit.console.exe . This case if often used to collect code coverage statistics.

Run all CMD files in the scripts directory with the same arguments

scripts/*.cmd

arg1 arg2

Uses the default Windows command-line interpreter cmd.exe to run all .cmd scripts in the specified directory with the same set of parameters arg1 arg2 .

Run SH files with the same arguments

build_src.sh build_doc.sh

-c release

Uses /bin/sh to run both specified .sh scripts with the same parameters -c release .

Dockerの設定

.NET CLIビルドステップは、指定されたDockerコンテナーで実行できます。

コード・カバレッジ

JetBrains dotCover is supported as a coverage tool for msbuild , test , vstest , and a number of custom commands.

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

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

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

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

パラメーター

説明

DotNetCLI

.NET CLIバージョン。

DotNetCLI_Path

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

DotNetCoreSDKx.x_Path

.NET SDKバージョン。