2009-12-11 9 views
8

के साथ निर्माण पर स्वचालित रूप से कनेक्शन स्ट्रिंग को कैसे बदला जाए, क्या नैन का उपयोग करते हुए प्रकार का निर्माण जारी होने पर स्वचालित रूप से मेरे web.config में कनेक्शन स्ट्रिंग को बदलना संभव है? यदि हां, तो कैसे? धन्यवादनैन्ट

उत्तर

18

मुझे लगता है कि आप xmlpoke कार्य का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपका web.config

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
     <add name="myDb" connectionString="blah" providerName="blah"/> 
    </connectionStrings> 
</configuration> 

फिर आप इस तरह की अपनी बिल्ड फ़ाइल में कोई कार्य जोड़ सकते हैं।

<xmlpoke 
    file="path_to_your_web_root\Web.config" 
    xpath="/configuration/connectionStrings/add[@name='myDb']/@connectionString" 
    value="your_connection_string" /> 

ओह, यहां xmlpoke कार्य का प्रलेखन है। http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html

+0

कनेक्शन स्ट्रिंग में रिक्त स्थान होने पर यह प्रतीत नहीं होता है :( – sinsedrix

5

मुझे लगता है कि आप कनेक्शन स्ट्रिंग को विकास या परीक्षण वातावरण के बजाय उत्पादन वातावरण को इंगित करने के लिए ऐसा करना चाहते हैं जब नेंट रिलीज कोड बनाता है। इस परिदृश्य को हल करने के लिए मेरे पास आमतौर पर एक अलग दृष्टिकोण होता है; कनेक्शन स्ट्रिंग को एक अलग फ़ाइल में रखें। आप configSource विशेषता का उपयोग करके ऐसा कर सकते हैं:

<!-- point out a file containing the connectionStrings config section --> 
<connectionStrings configSource="connections.config"></connectionStrings> 

connections.config फ़ाइल कुछ इस तरह दिखना चाहिए:

<?xml version="1.0"?> 
<connectionStrings> 
    <add name="myDb" connectionString="{your connection string}"/> 
</connectionStrings> 

के बाद से कनेक्शन तार शायद ही कभी, फ़ाइल उत्पादन वातावरण में बदल connections.config आम तौर पर तो कर सकते हैं तैनाती से बाहर रखा जाना चाहिए।

+0

में वर्णित हैं वहाँ sqlmap.config में डेटाबेस/डेटा स्रोत/connectionstring स्थापित करने के लिए इसी तरह की एक तरीका है? – sinsedrix

1

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

2

एक और विकल्प टेम्पलेट का उपयोग करना है जहां कनेक्शन स्ट्रिंग के स्थान पर आपके पास टोकन है।

<connectionString> 
    <add name="myDb" connectionString="@[email protected]" /> 
</connectionStrings> 

फिर उचित स्ट्रिंग के साथ इसे बदलने के लिए फ़िल्टरचैन का उपयोग करें।

<copy file="Web.config.template" tofile="Web.config" overwrite="true"> 
    <filterchain> 
     <replacetokens> 
      <token key="CONNECTION_STRING" value="${ConnectionString}" /> 
     </replacetokens> 
    </filterchain> 
</copy> 

कनेक्शन स्ट्रिंग संपत्ति का मान बिल्ड प्रकार के अनुसार अलग-अलग होगा।

Filterchains Nant Documentation

+0

अद्भुत सरल विस्तार समाधान। –