2009-10-27 18 views
5

मैं निम्नलिखित संरचना मिल गया है के साथ बिल्ड:टीम कई टीम परियोजनाओं

$ 
--TeamProject1 
---Solution1.sln 
----TestProject1 
--TeamProject2 
---Solution2.sln 
----TestProject2 

TestProject1 में, मैं संदर्भ (नहीं एक परियोजना संदर्भ है, लेकिन एक फ़ाइल संदर्भ) के रूप में TestProject2.dll जोड़ें। मेरा सवाल है: विभिन्न टीम प्रोजेक्ट से संबंधित असेंबली के संदर्भ में समाधान कैसे बनाया जाए?

मैं निम्नलिखित जानकारी युक्त TFSBuild.proj फ़ाइल मिल गया है:

<TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand> 

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../DEV/TeamProject1.sln"> 
    <Targets></Targets> 
    <Properties></Properties> 
</SolutionToBuild> 

<Map Include="$/TeamProject1"> 

    <LocalPath>$(SolutionRoot)</LocalPath> 

</Map> 

<Map Include="$/TeamProject2"> 

    <LocalPath>$(SolutionRoot)</LocalPath> 

</Map> 

<Target Name="BeforeGet"> 
    <DeleteWorkspaceTask TeamFoundationServerUrl="$(TeamFoundationServerUrl)" Name="$(WorkspaceName)" /> 
    <Exec WorkingDirectory="$(SolutionRoot)" Command="&quot;$(TfCommand)&quot; workspace /new $(WorkspaceName) /server:$(TeamFoundationServerUrl)" /> 
    <Exec WorkingDirectory="$(SolutionRoot)" Command="&quot;$(TfCommand)&quot; workfold /unmap /workspace:$(WorkSpaceName) &quot;$(SolutionRoot)&quot;" /> 
    <Exec WorkingDirectory="$(SolutionRoot)" Command="&quot;$(TfCommand)&quot; workfold /map /workspace:$(WorkSpaceName) /server:$(TeamFoundationServerUrl) &quot;%(Map.Identity)&quot; &quot;%(Map.LocalPath)&quot;" /> 
    </Target> 

अग्रिम धन्यवाद।

xiaosu

उत्तर

1

AFAIK यह संभव नहीं है और यह डेवलपर की मशीनों पर समस्याग्रस्त हो जाएगा। फ़ाइल संदर्भ जाने का रास्ता है। मैं आमतौर पर इस तरह की परियोजनाओं का आयोजन:

$ 
-- TeamProject1 
    -- branches 
    -- trunk 
     Solution1.sln 
     -- lib 
     TestProject2.dll 
     -- src 
     -- test 
     TestProject1.csproj references TestProject2.dll from lib 

-- TeamProject2 
    -- branches 
    -- trunk 
     Solution2.sln 
     -- lib 
     -- src 
     -- test 
     TestProject2.csproj 

इस तरह TeamProject1 TeamProject2 के स्रोत कोड से स्वतंत्र है और यह सभी आवश्यक निर्भरता में शामिल है। यदि TeamProject2 बदलता है तो यह आवश्यक नहीं होगा TeamProject1।

+2

काम करेगा आपके अपडेट के लिए धन्यवाद। आप TestProject2.dll को सिंक में कैसे रखते हैं? डेवेलपमेंट चरण में, TestProject2.dll हर हफ्ते बदला जा सकता है, तो क्या मुझे TeamProject2 से TeamProject1 lib फ़ोल्डर में मैन्युअल रूप से TestProject2.dll की प्रतिलिपि बनाने की आवश्यकता है ?? धन्यवाद। – Xiaosu

4

official TFS guide on CodePlex के शब्दों में:

  • शाखाओं में बंटी:

    आप स्रोत या टीम के प्रोजेक्ट को भर में बाइनरी का हिस्सा हैं, तो आप दो विकल्प हैं। इस दृष्टिकोण के साथ, आप स्रोत को अन्य टीम प्रोजेक्ट से अपने वर्तमान समाधान में ब्रांच करते हैं। यह एक कॉन्फ़िगरेशन बनाता है जो साझा स्थान से स्रोत को सर्वर और साइड पर आपकी परियोजना को एकीकृत करता है।

  • वर्कस्पेस मैपिंग। इस दृष्टिकोण के साथ, आप अन्य टीम प्रोजेक्ट से स्रोत को अपने विकास कंप्यूटर पर वर्कस्पेस में मैप करते हैं। यह एक कॉन्फ़िगरेशन बनाता है जो क्लाइंट-साइड पर अन्य टीम प्रोजेक्ट और आपकी प्रोजेक्ट से स्रोत को एकीकृत करता है।

ब्रांचिंग पसंदीदा दृष्टिकोण है क्योंकि यह स्रोत नियंत्रण सर्वर पर निर्भरता संबंध संग्रहीत करता है। वर्कस्पेस मैपिंग एक क्लाइंट-साइड-ओनली दृष्टिकोण है, जिसका अर्थ है कि आपको और प्रत्येक डेवलपर को अपने कंप्यूटर पर मैपिंग और बिल्ड सर्वर पर सफलतापूर्वक एप्लिकेशन बनाने के लिए मैपिंग बनाना होगा।

ब्रांचिंग अतिरिक्त मर्ज ओवरहेड जोड़ती है लेकिन यह आपको अद्यतन बाइनरी या स्रोत को स्पष्ट रूप से लेने का निर्णय लेने में सक्षम बनाती है।

+0

+1 मुझे नहीं पता था कि यह संभव था और वास्तव में मेरी समस्या हल करता है। –

0

इसके लिए वास्तविक उत्तर खोजना बहुत मुश्किल था और यह मेरा बहुत समय बर्बाद कर दिया।तो अगर आप कभी भी इस समस्या मिलता है, यहाँ मूल रूप से यूआई आप अपने संग्रह पर एक से अधिक टीम परियोजना का चयन करने की अनुमति नहीं है सही समाधान

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/9918911f-5951-43be-9ee9-00214cf17400/buildvnext-and-multiple-team-projects?forum=tfsbuild

करने के लिए एक कड़ी है। लेकिन आप हमेशा अपनी दूसरी टीम परियोजनाओं के लिए वास्तविक पथ टाइप कर सकते हैं और यह

संबंधित मुद्दे