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="$(DbPath)"" />
<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%
構成のBuild Parameters
変数の下に Properties and environment
を追加する必要があります
`
したがって、MSBUildのBuild Step
のコマンドラインパラメーターで、/p:
として指定されているプロパティを削除し、それぞれをBuild Parameters
(上記のスクリーンショット)に追加して値を指定します
それはすべて舞台裏で行われます!正しい規則に従う必要があります。 MSBuildスクリプトでは、通常の変数表記を使用します
$(DbPath)
そして、TeamCityでは、システムまたは環境変数を定義します
system.DbPath
TeamCityは、すべてのsystem/env変数を自動的にMSBuildタスクに送信し、「system」または「env」部分を削除します。そして、あなたは書く必要はありません/property:DbPath=system.DbPath
をTeamCityタスクに追加します。