2009-03-02 4 views
2

common.targets 파일을 팀 빌드에서 사용하려는 일부 공용 msbuild 대상과 함께 설정하려고하므로 내 TFSBuild.proj 파일로 가져옵니다. 나는 이것을 달성하는 가장 좋은 방법이 무엇인지 궁금합니다. 각 TFSBuild.proj 파일 바로 옆에 common.targets를 저장해야하며 각 팀 빌드마다 대상 파일이 중복되거나 다른 방법이 있습니까? 차라리 각각의 빌드 머신에 타겟 파일을 두지는 않을 것입니다.팀 빌드를위한 공통 대상은 어디에 저장해야합니까?

+0

여기에 몇 가지 좋은 답변이 있습니다. 왜 그들이 일하지 않거나 하나를 받아들이지 않는지에 대해 언급하지 않으려면 ..... – Vaccano

+1

당신 말이 맞습니다. 끝냈어. 귀하의 답변에 감사드립니다. – Fadeproof

답변

3

Team Build는 TFSBuild.proj가 호출되기 전에 부트 스트 래퍼 단계를가집니다. 동일한 디렉터리에있는 TFSBuild.proj 및 다른 파일 만 소스 제어에서 다운로드됩니다. 당신이 소스 제어하에 당신의 목표 파일을 원하는 경우 그래서, 당신은 TFSBuild.proj와 같은 위치에 넣을 필요가

More details in this answer

나는 그것을 시도하지 않은,하지만 당신은 넣을 수있을 네트워크 공유의 대상 파일을 가져 와서 unc 공유를 사용하여 가져옵니다.

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

그러나 그런 뭔가 빌드 계정과 바탕 화면을 실행하는 모든 사람이 해당 네트워크 공유에 액세스 할 수 빌드하는 것이 필요합니다.

2

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

2

$ Volume \ Program Files \ MSBuild의 MS 대상과 함께 저장할 수 있습니다. 이 작업의 이점은 기본 제공되는 "$ (MSBuildExtensionsPath) \ Path \ To \ Your \ Targets"메타 데이터를 사용하여 상대 경로를 만들 수 있다는 것입니다.

+0

(+1) 문서에 따르면 "사용자 지정 대상 파일을 넣을 수있는 유용한 곳"인 MSBuildExtensionsPath를 인식하지 못했습니다. http://msdn.microsoft.com/en-us/library/ms164309.aspx – Pedro

4

소스 제어에있는 일반적인 위치에 넣으십시오. 대상을 사용하기 전에,이처럼 TFSBuild.proj 파일에서 GET을 수행

<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)"/> 

이 작업의 핵심은 설정에 사용자 정의 물건을 가리키는 빌드 에이전트 사용자의 작업 공간입니다. 이 디렉토리는 일반 빌드와 동일한 공간에 있어서는 안됩니다.

Vaccano

+0

어디에서 Exec 호출을 했습니까? Target에 넣으면 가져 오기가 먼저 시도되고 실패합니다. 루트 아래에 직접 두는 경우 오류가 발생합니다. 가져 오기를 시도하기 전에 파일 가져 오기를 수행하려면 어떻게해야합니까? – Elezar

+0

@ Elezar - 5 년 전 나는 당신의 질문에 대답 할 수있었습니다. 나는 오랫동안 MS Build를 많이하지 않았다. 나는 지금 기억하지 않는다. 죄송합니다. – Vaccano

+0

좋아, 나는이 대답이 얼마나 오래된 지 생각해 보면 오래되었다. 그래도 응답 주셔서 감사합니다! – Elezar

관련 문제