2012-04-24 15 views
5

पर रूपांतरित कॉन्फ़िगरेशन फ़ाइल का उत्पादन नहीं कर रहा है, मैं एक सीआई सर्वर पर विजुअल स्टूडियो वेब प्रोजेक्ट में एक XML कॉन्फ़िगरेशन फ़ाइल को बदलने के लिए SlowCheetah का उपयोग कर रहा हूं। विजुअल स्टूडियो 2010 में जब मैं प्रकाशित करता हूं तो XML ठीक ठीक हो जाएगा, लेकिन सीआई सर्वर पर कोई परिवर्तन नहीं होता है। इसके बजाय मुझे मूल गैर-रूपांतरित कॉन्फ़िगरेशन फ़ाइल मिलती है। मैंने Sayed Ibrahim's Blog द्वारा प्रदान किए गए निर्देशों का पालन किया जहां वह समाधान में स्लोचेटा डीएल और लक्ष्य फ़ाइल जोड़ने और प्रोजेक्ट फ़ाइल को उन फ़ाइलों का उपयोग करने के लिए इंगित करता है। मैंने यह परिवर्तन किया और यह सुनिश्चित करने के लिए विजुअल स्टूडियो में प्रकाशित किया कि यह काम करता है और ऐसा हुआ। लेकिन जब मैं सीआई सर्वर पर प्रोजेक्ट का निर्माण करता हूं तो मुझे वही समस्या मिलती है जो मैंने पहले की थी।SlowCheetah सीआई सर्वर

मेरी धारणा यह है कि मेरे एमएसबिल्ड स्क्रिप्ट के साथ ऐसा कुछ है जो मैं सीआई सर्वर पर अपनी परियोजना बनाने के लिए उपयोग कर रहा हूं। SlowCheetah का उपयोग करने के लिए मेरी परियोजना को बताने के लिए मुझे इसमें कुछ जोड़ने की ज़रूरत है?

<Project DefaultTargets="DoPublish" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
    <SourceFileRootFolder>$(CCNetWorkingDirectory)\Code</SourceFileRootFolder> 
    <WebFolder>DCSIWeb\DCSIWeb</WebFolder> 
    <ReleaseFolder>C:\Builds\BuildFolder</ReleaseFolder> 
</PropertyGroup> 
<PropertyGroup Condition ="$(CCNetWorkingDirectory) == ''"> 
    <SourceFileRootFolder>C:\Builds\ProjectWorkingDirectory\Code</SourceFileRootFolder> 
    <ReleaseFolder>C:\Builds\BuildFolder</ReleaseFolder> 
</PropertyGroup> 
<Target Name="CleanSource"> 
    <Message Text="Removing all source files from $(ReleaseFolder)" /> 
    <RemoveDir Directories="$(ReleaseFolder)" /> 
</Target> 
<Target Name="DoPublish"> 
    <CallTarget Targets="CleanSource"/> 
    <MSBuild Projects="$(SourceFileRootFolder)\DCSIWeb.sln" Targets="Clean;Build" /> 
    <MSBuild Projects="$(SourceFileRootFolder)\$(WebFolder)\DCSIWeb.csproj" 
     Targets="_CopyWebApplication;_BuiltWebOutputGroupOutput;TransformWebConfig" 
     Properties="OutDir=$(ReleaseFolder)\" ></MSBuild> 
</Target> 

MSBuild स्क्रिप्ट मूल रूप से इस परियोजना को बनाता है और करने के लिए परियोजना स्थानों "c: \ बनाता है \ BuildFolder" मेरे निर्माण स्क्रिप्ट इस प्रकार है। जब मैं बिल्ड करने के बाद बिल्ड फ़ोल्डर में देखता हूं तो मुझे .config फ़ाइल की आवश्यकता होती है, लेकिन इसमें कोई परिवर्तन नहीं हुआ है। यह वही फाइल है जो पहले थी।

+0

क्या आप मुझे ईमेल कर सकते हैं? Sayedha [at] {माइक्रोसॉफ्ट} [डॉट कॉम] –

+2

मैं एक ही समस्या में आया हूं ... मैंने अब तक जो देखा है उससे SlowCheetah इंस्टॉलर उपयोगकर्ता निर्दिष्ट स्थान में कोड रखता है। इसलिए, यदि आप SlowCheetah को अपने आप के रूप में स्थापित कर रहे हैं और अपने सीआई को एक अलग उपयोगकर्ता के तहत चलाते हैं तो हो सकता है कि SlowCheetah नहीं चल सकता क्योंकि यह अपना कोड नहीं ढूंढ सकता है। वही है जो मैंने अभी तक खोजा है ... अभी भी इसे टीमसिटी में चलाने के लिए खुद को काम नहीं मिला है;) –

+1

जैक ने ऊपर दिए गए मेरे ब्लॉग पर निर्देशों का पालन किया है? –

उत्तर

0

मैं हमेशा इस तरह के उत्तरों से नापसंद करता हूं लेकिन मैं आपको Config Transformation Tool का उपयोग करने की सलाह देता हूं। एक्सडीटी ट्रांसफॉर्मेशन का उपयोग करने के लिए यह एक और टूल है लेकिन यह चीता और थोड़ा चालाक (समर्थन पैरा) तो गंभीर एमएसबिल्ड टास्क बहुत आसान है। इसे सिर्फ समाधान में संग्रहीत किया जा सकता है या स्वचालित रूप से NuGet पैकेज के माध्यम से सीआई सर्वर पर बहाल किया जा सकता है। आपको सिर्फ पैरा के साथ कॉल उपयोगिता की आवश्यकता है। मैं एक्सडीटी के प्रशंसक हूं क्योंकि इन्हें उत्पादित किया गया था और यह उपकरण मेरी परियोजनाओं में उपयोग करने के लिए सबसे आसान है।

1

संस्करण 2.5.10 के साथ इसे आज़माएं। मैंने परियोजना में .targets फ़ाइल जोड़ने के लिए SlowCheetah संशोधित किया। अब कोई अतिरिक्त विन्यास की आवश्यकता नहीं है। https://github.com/sayedihashimi/slow-cheetah/issues/113 पर अधिक जानकारी।

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