문제

팀 빌드에서 사용하고 TFSBuild.proj 파일로 가져오려는 몇 가지 일반적인 msbuild 대상을 사용하여 common.targets 파일을 설정하려고 합니다.이것을 달성하는 가장 좋은 방법이 무엇인지 궁금합니다.각 TFSBuild.proj 파일 바로 옆에 common.targets를 저장해야 하므로 각 팀 빌드에 대한 대상 파일의 중복이 있어야 합니까, 아니면 다른 방법이 있습니까?각 빌드 시스템에 대상 파일을 넣지 않는 것이 좋습니다.

도움이 되었습니까?

해결책

팀 빌드에는 tfsbuild.proj가 호출되기 전에 팀 빌드는 부트 스트랩 스테르 단계가 있습니다. 따라서 대상 파일이 소스 제어하에 있으려면 tfsbuild.proj와 같은 위치에 넣어야합니다.

이 답변에 대한 자세한 내용

시도한 적이 없지만 Targets 파일을 네트워크 공유에 넣고 UNC 공유를 사용하여 가져올 수 있습니다. 같은 것

<Import Project="\\anothermachine\share\something.targets"/>

그러나 빌드 계정과 데스크탑 빌드를 실행하는 모든 사람들이 해당 네트워크 공유에 액세스 할 수 있어야합니다.

다른 팁

소스 컨트롤에서 좋아하는 일반적인 위치에 넣으십시오. 대상을 사용하기 전에 tfsbuild.proj 파일에서 다음과 같이 얻습니다.

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>&quot;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf&quot;</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>&quot;$/YourProj/YourCustomProjPath&quot;</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

이 작업의 핵심은 사용자 지정 항목을 가리키는 빌드 에이전트 사용자를위한 작업 공간을 설정하는 것입니다. 이 디렉토리는 일반 빌드와 같은 공간에 있지 않아야합니다.

백 카노

일반적인 .targets 파일의 목표는 스크립트 중복을 줄이는 것입니다.소스 제어 하에 이 파일의 복사본이 여러 개 있는 경우 해당 복사본을 변경해야 하면(아마도 .exe 경로를 업데이트하기 위해) 어떻게 됩니까?개인적으로 나는 다른 모든 빌드 스크립트가 참조할 수 있는 공통 파일을 위한 별도의 위치를 ​​선호합니다.이것의 유일한 단점은 이 파일의 경로를 하드 코딩할 가능성이 높다는 것입니다.

MS 대상과 함께 $ Volume Program Files MSBuild로 저장할 수 있습니다. 이를 수행하는 장점은 내장형 메타 데이터 "$ (msbuildextensionspath) path to your targets"를 사용하여 상대 경로를 만들 수 있다는 것입니다.

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