मैं सैम और ओबेलिक्स की विधि .NET 3.5 में संयोजन का उपयोग करता हूं।
public static class DataConnection
{
#if LOCALDEV
public const string Env = "Debug";
#endif
#if STAGING
public const string Env="Staging";
#endif
#if RELEASE
public const string Env="Release";
#endif
private static ConnectionStringSettingsCollection _connections;
static DataConnection()
{
_connections = ConfigurationManager.ConnectionStrings;
}
public static string BoloConnectionString
{
get
{
return _connections["DB1."+Env].ConnectionString;
}
}
public static string AOAConnectionString
{
get
{
return _connections["DB2."+Env].ConnectionString;
}
}
public static string DocVueConnectionString
{
get
{
return _connections["DB3."+Env].ConnectionString;
}
}
}
फिर मेरे प्रोजेक्ट गुणों में, मैं सही सशर्त संकलन प्रतीकों को परिभाषित करता हूं। इस तरह मुझे अपने कनेक्शन स्ट्रिंग को समेह की तरह कोडित रखने की ज़रूरत नहीं है, लेकिन कोड केवल स्ट्रिंग के लिए दिखता है कि यह कैसे बनाया गया था। यह मुझे सभी बिल्डों के लिए एक कॉन्फ़िगरेशन फ़ाइल (यदि मुझे आवश्यकता है) की अनुमति देता है, लेकिन हकीकत में मैं अपनी बिल्ड प्रक्रिया में कॉन्फ़िगरेशन फ़ाइलों को तैनात नहीं करता हूं।यद्यपि सशर्त ऐप। .NET 4 के लिए Relase.config सामान भविष्य में जाने का सही तरीका दिखता है।
स्रोत
2010-03-04 22:48:17
मुझे लगता है कि यह एक अच्छा सुझाव है। क्या आप एक वीएस -2008 परियोजना में प्रीकंपाइल स्थिति जोड़ने के बारे में विस्तार से बता सकते हैं? मैं एमएसबिल्ड या किसी अन्य निर्माण प्रक्रिया का उपयोग नहीं कर रहा हूं। मैं बस विजुअल स्टूडियो के भीतर से साफ/पुनर्निर्माण और तैनाती करता हूं। –
@roygbiv: संपादित देखें। – AxelEckenberger
धन्यवाद दोस्त। आपकी विधि और नमूना कोड ने इस कार्य का संक्षिप्त काम किया है। –