[msbuild] TeamCity는 MSBuild 단계에서 “/ property :”대신 “Build Parameters”를 사용한다고 말합니다. 그게 무슨 뜻입니까?

CI 빌드를 수행하기위한 TeamCity 서버 설정이 있습니다. 저는 C # 솔루션을 빌드 및 테스트하고 일부 사용자 지정 MSBuild 작업을 실행하고 있습니다. 이 작업 중 하나는 빌드 출력에 경고를 인쇄하는 것입니다.

MSBuild 명령 줄 매개 변수에는 “/ property :”또는 “/ p :”매개 변수가 포함됩니다. 대신 빌드 매개 변수를 사용하십시오.

이것이 무엇을 의미하는지 또는 제거하는 방법을 이해하지 못합니다. 오타가 있든 없든 Google은 잘되지 않습니다. 명령 줄 ( /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 도구 버전 : 4.0
실행 플랫폼 : x64
대상 : InstallDb
명령 줄 매개 변수 : /property:DbPath=%env.DB_PATH%



답변

구성 Build Parameters에서 Properties and environment변수 아래 에 추가 해야합니다.

`여기에 이미지 설명 입력

그래서의 명령 라인 파라미터에 Build StepMSBUILD 용으로 지정되는 임의의 속성을 제거 /p:하고, 그 각각에 부가 Build Parameters(상술 한 스크린 샷) 및 값을 수득


답변

모든 것이 뒤에서 일어난다! 올바른 규칙을 따르기 만하면됩니다. MSBuild 스크립트에서 일반 변수 표기법을 사용합니다.

$(DbPath)

TeamCity에서는 시스템 또는 환경 변수를 정의합니다.

system.DbPath

TeamCity는 ‘system’또는 ‘env’부분을 제거하여 모든 시스템 / env 변수를 MSBuild 작업에 자동으로 보냅니다. 그리고 /property:DbPath=system.DbPathTeamCity 작업 을 작성할 필요가 없습니다 .


답변