web-dev-qa-db-ja.com

TeamCityは、MSBuildステップで「/ property:」の代わりに「Build Parameters」を使用するように言っています。どういう意味ですか?

CIビルドを行うためにTeamCityサーバーをセットアップしています。 C#ソリューションを構築およびテストし、いくつかのカスタムMSBuildタスクを実行しています。これらのタスクの1つは、ビルド出力に警告を出力することです...

MSBuildコマンドラインパラメーターには、「/ property:」または「/ p:」パラメーターが含まれます。代わりにビルドパラメータを使用してください。

これが何を意味するのか、それをどのように削除するのか分かりません。グーグルではうまくいかない(タイプミスの有無にかかわらず)。コマンドラインからタスクを実行しました(/verbosity:diagnostic)そして表示されないので、TeamCityメッセージだと思います。

MSBuildタスクは

<Target Name="InstallDb">
  <MakeDir Directories="$(DbPath)" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseDrop.sql" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseCreate.sql -v DbPath=&quot;$(DbPath)&quot;" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" />
</Target>

そして、関連するTeamCityステップ情報は

MSBuildバージョン:4.0
MSBuild Toolsバージョン:4.0
実行プラットフォーム:x64
ターゲット:InstallDb
コマンドラインパラメーター:/property:DbPath=%env.DB_PATH%

76

構成のBuild Parameters変数の下に Properties and environment を追加する必要があります

`enter image description here

したがって、MSBUildのBuild Stepのコマンドラインパラメーターで、/p:として指定されているプロパティを削除し、それぞれをBuild Parameters(上記のスクリーンショット)に追加して値を指定します

57
manojlds

それはすべて舞台裏で行われます!正しい規則に従う必要があります。 MSBuildスクリプトでは、通常の変数表記を使用します

$(DbPath)

そして、TeamCityでは、システムまたは環境変数を定義します

system.DbPath

TeamCityは、すべてのsystem/env変数を自動的にMSBuildタスクに送信し、「system」または「env」部分を削除します。そして、あなたは書く必要はありません/property:DbPath=system.DbPathをTeamCityタスクに追加します。

38