2011-11-08 3 views
7

मेरे पास समाधान के लिए 2 बिल्ड परिभाषाएं स्थापित की गई हैं, 1 एक रात का निर्माण है जो हर रात ट्रिगर होता है और दूसरा गेटेड चेक-इन बिल्ड होता है जो डेवलपर स्रोत नियंत्रण में नए बदलावों की जांच करने का प्रयास करते समय ट्रिगर करेगा। रात का निर्माण एक कस्टम टेम्पलेट का उपयोग कर रहा है जो Ewald Hoffman method से थोड़ा संशोधित विधि का उपयोग कर असेंबली संस्करणों को बढ़ाता है। जब एक फ़ाइल में फ़ाइलों की जाँच करने के कस्टम गतिविधि के माध्यम से में चेक किया गया है, मैं निर्माण त्रुटि मिलती है:क्या मैं एक अलग निर्माण प्रक्रिया के दौरान फ़ाइल की जांच करने के बाद गेटेड चेक-इन बिल्ड को बाईपास कर सकता हूं? टीएफएस 2010

Your check-in could not be completed because it affects the following gated build definitions \Project\GatedBuld. To complete your check-in you will need to queue a build of the shelveset Gated_2011-11-08_09.31.42.6934;DOMAIN\TFSBuildAccount.

वर्तमान में मैं इस गेटेड चेक-इन निर्माण बायपास करने के लिए एक रास्ता खोजने के लिए सक्षम नहीं किया गया (सीआई बनाता है टिप्पणी में * NO_CI * चेक का उपयोग करके रोका जाता है)।

मैंने बिल्ड सेवा खाते (गेटेड बिल्ड के लिए सुरक्षा के माध्यम से) के निर्माण के लिए "निर्माण द्वारा ओवरराइड चेक-इन सत्यापन" सेट करने की कोशिश की है, लेकिन जहां तक ​​मुझे पता है कि यह केवल कोड की जांच करते समय गेटेड बिल्ड को रोक देगा मैन्युअल रूप से (गेटेड चेक-इन संवाद में प्रस्तुत चेक बॉक्स के माध्यम से)। मैं जो खोज रहा हूं वह स्वचालित रूप से

कोई भी सुझावों में परिवर्तन की जांच करते समय गेटेड बिल्ड को बाईपास करने का एक तरीका है?

हमेशा की तरह, अग्रिम

उत्तर

7

में किसी भी मदद के लिए धन्यवाद जब आप अपने परिवर्तन प्रोग्राम के रूप में चेक इन, आप एक WorkspaceCheckInParameters वस्तु बना सकते हैं और सही करने के लिए अपने OverrideGatedCheckIn गुण सेट कर सकते हैं। निम्नलिखित कोड चेक इन (और यह भी सीआई) गेटेड बाईपास होगा:

  var pendingChanges = workspace.GetPendingChanges(); 
      if (pendingChanges.Any()) 
      { 
       WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment) 
       { 
        OverrideGatedCheckIn = true, 
       }; 
       workspace.CheckIn(parameters); 
      } 

ध्यान दें कि आप खाते है कि सभी प्रभावित निर्माण परिभाषा के लिए चेकइन करता है पर गेटेड चेकइन को बायपास करने के लिए अनुमति देनी होगी। इस मामले में, यह नाइटली बिल्ड का निर्माण सेवा खाता है।

0

मैं PowerShell में विधानसभा संस्करण अद्यतन कोड लिखा था और slimier कोड "OverrideGatedCheckIn = true" Powershell के लिए नहीं मिल सका और सभी मैं था आगे बढ़ रहा था विधानसभा संस्करण फ़ाइलें (SharedAssembly.vb & SharedAssembly.cs) एक फ़ोल्डर में SharedAssembly और कहा जाता है गेटेड चेक-इन प्रक्रिया के लिए विचार करने के लिए उन्हें छोड़कर।

enter image description here

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