क्या बिल्ड परिभाषा की प्रतिलिपि बनाने का कोई तरीका है? मैं एक मुख्य लाइन स्रोत नियंत्रण पद्धति में काम करता हूं जो कई अलग-अलग शाखाओं का उपयोग करता है जो बहुत ही कम अवधि के लिए रहते हैं (यानी सप्ताह में कुछ दिन)। मैं वास्तव में एक निर्माण टेम्पलेट की प्रतिलिपि बनाना चाहता हूं और बस निर्माण के लिए समाधान बदलना चाहता हूं। क्या इसे करने का कोई तरीका है?मैं एक टीएफएस 2010 बिल्ड परिभाषा की प्रतिलिपि कैसे बना सकता हूं?
उत्तर
आप एक ऐड-इन यह करने के लिए लिख सकते हैं। यहाँ एक मौजूदा निर्माण परिभाषा कॉपी करने के लिए कोड है:
static IBuildDefinition CloneBuildDefinition(IBuildDefinition buildDefinition)
{
var buildDefinitionClone = buildDefinition.BuildServer.CreateBuildDefinition(
buildDefinition.TeamProject);
buildDefinitionClone.BuildController = buildDefinition.BuildController;
buildDefinitionClone.ContinuousIntegrationType = buildDefinition.ContinuousIntegrationType;
buildDefinitionClone.ContinuousIntegrationQuietPeriod = buildDefinition.ContinuousIntegrationQuietPeriod;
buildDefinitionClone.DefaultDropLocation = buildDefinition.DefaultDropLocation;
buildDefinitionClone.Description = buildDefinition.Description;
buildDefinitionClone.Enabled = buildDefinition.Enabled;
buildDefinitionClone.Name = String.Format("Copy of {0}", buildDefinition.Name);
buildDefinitionClone.Process = buildDefinition.Process;
buildDefinitionClone.ProcessParameters = buildDefinition.ProcessParameters;
foreach (var schedule in buildDefinition.Schedules)
{
var newSchedule = buildDefinitionClone.AddSchedule();
newSchedule.DaysToBuild = schedule.DaysToBuild;
newSchedule.StartTime = schedule.StartTime;
newSchedule.TimeZone = schedule.TimeZone;
}
foreach (var mapping in buildDefinition.Workspace.Mappings)
{
buildDefinitionClone.Workspace.AddMapping(
mapping.ServerItem, mapping.LocalItem, mapping.MappingType, mapping.Depth);
}
buildDefinitionClone.RetentionPolicyList.Clear();
foreach (var policy in buildDefinition.RetentionPolicyList)
{
buildDefinitionClone.AddRetentionPolicy(
policy.BuildReason, policy.BuildStatus, policy.NumberToKeep, policy.DeleteOptions);
}
return buildDefinitionClone;
}
आपके संदेश से यह स्पष्ट नहीं है कि कौन सा टेम्पलेट आपकी बिल्ड परिभाषा है (डिफ़ॉल्ट, अपग्रेड या प्रयोगशाला प्रबंधन)। अगर मैं सही ढंग से समझता हूं तो आप एक बिल्ड परिभाषा को आसानी से स्थापित करना चाहते हैं जो एक ही समाधान बनाता है लेकिन एक अलग शाखा से।
एक चीज जिसे आप परिभाषा की प्रतिलिपि बनाने की बजाय कोशिश कर सकते हैं उसे संपादित करना है। जब शाखा मर जाती है, बिल्ड परिभाषा का नाम बदलें (रिपोर्टिंग में मदद कर सकता है), बिल्ड के कार्यक्षेत्र मानचित्रण को बदलें और आपको किया जाना चाहिए।
धन्यवाद, Ladislau
मैं सिर्फ परिभाषाओं का निर्माण कॉपी की जरूरत थी, और पाया जिम की जवाब ऊपर सहायक हो। हालांकि, टीएफएस एपीआई में नया होने के कारण, मुझे सर्वर से कनेक्ट करने और कोड के माध्यम से मौजूदा बिल्ड परिभाषा प्राप्त करने में मदद की आवश्यकता थी।
मैं TFS विद्युत उपकरण Sept 2010 जो क्लोन बिल्ड परिभाषा आदेश होता है का उपयोग कर समाप्त हो गया। – devlife
आप नए TFS 2010 power tools डाउनलोड कर सकते हैं: इन दो लिंक ख़ाली जगह को भरने में मदद की। इसमें एक बिल्ड परिभाषा क्लोन करने का विकल्प है।
एक उदाहरण के लिए http://msmvps.com/blogs/molausson/archive/2010/10/21/clone-a-build-definition.aspx देखें
नोट: ध्यान रखें कि क्लोन ही काम करता है आप पॉप आउट नहीं था, जब खिड़की बिल्ड।
आप परिभाषा फ़ाइल की प्रतिलिपि बनाने के लिए बिल्ड परिभाषा पर राइट क्लिक कर सकते हैं और 'क्लोन बिल्ड परिभाषा' का चयन कर सकते हैं। फिर आप इसे वहां से संपादित कर सकते हैं।
आपकी आवश्यकतानिम्नलिखित उपकरण (वी.एस. ऐड) को पूरा करेगा>
समुदाय TFS का निर्माण प्रबंधक
http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c
यहाँ soltion है अगर आप एक टीम परियोजना से करने के लिए परिभाषा बिल्ड ले जाना चाहते हैं अन्य टीम परियोजना।
public void MoveBuild(string fromTeamProject, string toTeamProject, string buildName, string newBuildName)
{
var _server = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new
Uri("http://Mytfs:8080/defaultcollection"));
IBuildServer _buildServer = _server.GetService<IBuildServer>();
var buildDetails = _buildServer.QueryBuildDefinitions(fromTeamProject);
foreach (var fromBuild in buildDetails)
{
if (fromBuild.Name != buildName) continue;
var newBuildDefinition = _buildServer.CreateBuildDefinition(toTeamProject);
newBuildDefinition.Name = !string.IsNullOrEmpty(newBuildName) ? newBuildName : fromBuild.Name;
newBuildDefinition.BuildController = fromBuild.BuildController;
// This finds the template to use
foreach (var mapping in fromBuild.Workspace.Mappings)
{
newBuildDefinition.Workspace.AddMapping(
mapping.ServerItem, mapping.LocalItem, mapping.MappingType, mapping.Depth);
}
newBuildDefinition.DefaultDropLocation = fromBuild.DefaultDropLocation;
newBuildDefinition.Description = fromBuild.Description;
// buildDefinition.Workspace.AddMapping(build.Workspace.);
newBuildDefinition.Process = _buildServer.QueryProcessTemplates(fromBuild)[2];
newBuildDefinition.ProcessParameters = fromBuild.ProcessParameters;
newBuildDefinition.Enabled = false;
newBuildDefinition.Save();
}//end of for each loop
}
- 1. टीएफएस 2010 टीम बिल्ड
- 2. रूबी: मैं इस सरणी की प्रतिलिपि कैसे बना सकता हूं?
- 3. बिल्ड सारांश सारांश टीएफएस 2010
- 4. मैं क्यूटी में ऑब्जेक्ट की प्रतिलिपि कैसे बना सकता हूं?
- 5. मैं प्रगति पट्टी कैसे बना सकता हूं (सीपी एक निर्देशिका की प्रतिलिपि बना सकता है)?
- 6. टीएफएस 2010 स्वचालित बिल्ड सर्वर
- 7. टीएफएस 2010 "मुख्य" बिल्ड लॉग कहां है?
- 8. मैं एक गिट रिपोजिटरी से दूसरी निर्देशिका में एक निर्देशिका की प्रतिलिपि कैसे बना सकता हूं?
- 9. टीएफएस 2010 सफल निर्माण
- 10. मैं सी # 2010 का उपयोग कर क्लिपबोर्ड पर एक चार्ट छवि की प्रतिलिपि कैसे बना सकता हूं?
- 11. टीएफएस 2010 -
- 12. टीएफएस 2010: एक फ़ोल्डर
- 13. मैं टीएफएस बिल्ड एक्सप्लोरर में टीमसिटी बिल्ड कैसे दिखूं?
- 14. टीएफएस 2010
- 15. मैं जीडब्ल्यूटी में एक मनमानी वस्तु की गहरी प्रतिलिपि कैसे बना सकता हूं?
- 16. मैं एक उदाहरण से दूसरे में नौकरी की प्रतिलिपि कैसे बना सकता हूं?
- 17. टीएफएस बिल्ड
- 18. टीएफएस 2010 - प्रतिलिपि के दौरान त्रुटि हुई: पथ बहुत लंबा
- 19. मैं रुबी में प्रो की गहरी प्रतिलिपि कैसे बना सकता हूं?
- 20. टीएफएस 2010
- 21. मैं एक constraintViolationException कैसे बना सकता हूं?
- 22. टीएफएस बिल्ड
- 23. टीएफएस 2010
- 24. मैं बुफर्ड रीडर की एक प्रति कैसे बना सकता हूं?
- 25. क्या मैं चींटी प्रतिलिपि कार्य ओएस-विशिष्ट बना सकता हूं?
- 26. मैं कैसे एक वीएस 2010 .NET 4.0 बिल्ड एजेंट को टीएफएस 2008
- 27. टीएफएस बिल्ड सीआई
- 28. मैं विजुअल स्टूडियो 2010 सी # प्रोजेक्ट/समाधान से टीएफएस कनेक्शन कैसे हटा सकता हूं?
- 29. क्या मैं एक गेटेड टीएफएस 2010 चेकइन में "ऑटो-मेलसील" कर सकता हूं?
- 30. qmake: मैं आउटपुट निर्देशिका में .dll/.so की प्रतिलिपि कैसे बना सकता हूं?
LINQPad, भयानक में यह काम कर रहे मिला =) – Maslow