C#.NET'te veritabanı dosyamın bir Excel çalışma kitabı olduğu bir proje yaptım. Bağlantı dizesinin konumu kodlamamda sabit olarak kodlandığından, sistemimde kurulum için bir sorun yok, ancak diğer sistemler için var.
Uygulamanın kurulumu tamamlandıktan sonra kullanıcıdan bir kez yol belirlemesini istemenin bir yolu var mı?
Aldığım cevaplar "Use App.Config"... birisi bu App.config'in ne olduğunu ve buradaki bağlamımda nasıl kullanılacağını söyleyebilir mi?
En basit haliyle app.config, önceden tanımlanmış birçok yapılandırma bölümü bulunan ve özel yapılandırma bölümleri için destek sağlayan bir XML dosyasıdır. Bir "yapılandırma bölümü" bazı bilgi türlerini depolamak için tasarlanmış bir şemaya sahip bir XML parçacığıdır.
Ayarlar, connectionStrings
veya appSettings
gibi yerleşik yapılandırma bölümleri kullanılarak yapılandırılabilir. Kendi özel yapılandırma bölümlerinizi ekleyebilirsiniz; bu gelişmiş bir konudur, ancak güçlü tipli yapılandırma dosyaları oluşturmak için çok güçlüdür.
Web uygulamaları genellikle bir web.config dosyasına sahipken, Windows GUI/servis uygulamaları bir app.config dosyasına sahiptir.
Uygulama düzeyindeki yapılandırma dosyaları, ayarları machine.config gibi genel yapılandırma dosyalarından devralır.
Bağlantı dizeleri, kullanabileceğiniz önceden tanımlanmış bir şemaya sahiptir. Bu küçük parçacığın aslında geçerli bir app.config (veya web.config) dosyası olduğunu unutmayın:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
app.config dosyanızı tanımladıktan sonra, ConfigurationManager sınıfını kullanarak kod içinde okuyabilirsiniz. Ayrıntılı MSDN örnekleri gözünüzü korkutmasın; aslında oldukça basittir.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
.config dosyalarını sık sık değiştirmek genellikle iyi bir fikir değildir, ancak yalnızca bir kerelik kurulum yapmak istiyorsunuz gibi görünüyor.
Çalışma zamanında *.config dosyasının connectionStrings
bölümünün nasıl güncelleneceğini açıklayan https://stackoverflow.com/q/502411/453277 adresine bakın.
İdeal olarak bu tür yapılandırma değişikliklerini basit bir yükleyiciden gerçekleştireceğinizi unutmayın.
*Q: App.config dosyasında bazı <value>
değerlerini manuel olarak değiştirdiğimi, kaydettiğimi ve ardından kapattığımı varsayalım. Şimdi bin klasörüme gittiğimde ve .exe dosyasını buradan başlattığımda, neden uygulanan değişiklikleri yansıtmıyor?
A: Bir uygulamayı derlediğinizde, app.config dosyası bin dizinine1 exe dosyanızla eşleşen bir adla kopyalanır. Örneğin, exe'nizin adı "test.exe" ise, bin dizininizde bir "text.exe.config" olmalıdır. Yapılandırmayı yeniden derlemeden değiştirebilirsiniz, ancak orijinal app.config dosyasını değil, derleme sırasında oluşturulan yapılandırma dosyasını düzenlemeniz gerekecektir.
1: web.config dosyalarının taşınmadığını, bunun yerine derleme ve dağıtım zamanında aynı konumda kaldığını unutmayın. Bunun bir istisnası, bir web.config dosyasının transformed.
NET Core ile yeni yapılandırma seçenekleri sunuldu. .config dosyalarının çalışma şekli değişmiş gibi görünmüyor, ancak geliştiriciler yeni, daha esnek yapılandırma paradigmaları seçmekte özgürler.
App.Config, uygulamanız için yapılandırma dosyası olarak kullanılan bir XML dosyasıdır. Başka bir deyişle, kodu değiştirmek (ve yeniden derlemek) zorunda kalmadan değiştirmek isteyebileceğiniz herhangi bir ayarı içinde saklarsınız. Genellikle bağlantı dizelerini saklamak için kullanılır.
Bunun nasıl yapılacağı hakkında bu MSDN makalesine bakın.
kullanarak App.Config içindeki anahtarlara erişebilirsiniz:
ConfigurationSettings.AppSettings["KeyName"]
Bu Konuya]1 bir göz atın