문제

MSBuild 명령 줄에서 호출 된 대상 (/t)의 이름을 얻는 방법을 아는 사람이 있습니까? 호출 할 수있는 몇 가지 유형의 대상이 있으며 사용자에게 알림에 해당 속성을 사용하고 싶습니다.

예시:

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV

대상 단어에 액세스하고 싶습니다 ApplicationDeployment 내 .proj 파일에서.

액세스 할 수있는 속성이 있습니까? 이 작업을 수행하는 방법이 있습니까?

편집하다: 나는 이것을 얻기 위해 재산을 통과하고 싶지 않습니다.

업데이트: 이것은 기반입니다 배포 스크립트 MSBuild 스크립트 사용. 내 빌드 서버는 코드를 배포하는 데 사용되지 않고 빌드에만 사용되지 않습니다. 빌드 서버 자체에는 선택할 수있는 빌드 알림이 있습니다.

도움이 되었습니까?

해결책 2

나는 대답을 찾았다!

<Target Name="ApplicationDeployment" >
    <CreateProperty Value="$(MSBuildProjectName) - $(Environment) - Application Deployment Complete">
      <Output TaskParameter="Value" PropertyName="DeploymentCompleteNotifySubject" />
    </CreateProperty>

나는 냉담한 것에 부분적인 신용을주고 싶습니다. 어떻게 해야할지 모르겠습니다.

다른 팁

당신이 요구하는 일을 정확히 수행하는 방법을 잘 모르겠지만 /p 옵션을 사용하여 그 문자열을 전달할 수 있습니까?

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV;MyValue=ApplicationDeployment

내가 볼 수있는 유일한 방법은 각 대상에서 조건부 속성을 사용하여 호출 할 첫 번째 대상을 설정하는 것입니다.

<Target Name="ApplicationDeployment">
<PropertyGroup>
  <InvokedTarget Condition="'${InvokedTarget}'==''">ApplicationDeployment</InvokedTarget>
</PropertyGroup>

...
</Target>

이것을 할 방법이 없습니다 (내가 알고있는). MSBuild에는 빌드를 요청한 대상 목록에 대한 속성이 없습니다.

그러나 방법을 찾으면 단일 대상이 아니라 빌드 할 대상 목록이 될 수 있음을 명심하십시오.

CCNET과 같은 서버를 사용하여 빌드 실행 및 알림을 처리하는 것이 좋습니다. 물론 MSBuild 스크립트에 대한 작업을 수행하여 알림을 전송할 수 있지만 해당 도메인은 빌드 서버에 속합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top