Saya telah melakukan sebuah proyek di C#.NET di mana saya file database adalah buku kerja Excel. Karena lokasi connection string sulit dikodekan dalam coding saya, tidak ada masalah untuk menginstal di sistem saya, tapi untuk sistem-sistem lain yang ada.
Apakah ada cara untuk meminta pengguna untuk mengatur jalan setelah setup aplikasi selesai?
Jawaban yang saya dapatkan adalah "Menggunakan Aplikasi.Config"... siapa pun dapat memberitahu apa Aplikasi ini.config dan bagaimana menggunakannya dalam konteks saya di sini?
Pada bentuknya yang paling sederhana, aplikasi.config adalah sebuah file XML dengan banyak konfigurasi yang sudah ditetapkan bagian yang tersedia dan dukungan untuk custom bagian konfigurasi. "konfigurasi bagian" adalah cuplikan dari XML dengan skema dimaksudkan untuk menyimpan beberapa jenis informasi.
Pengaturan dapat dikonfigurasi menggunakan built-in bagian konfigurasi seperti connectionStrings
atau appSettings
. Anda dapat menambahkan kustom anda sendiri bagian konfigurasi; ini adalah lanjutan topik, tapi sangat kuat untuk membangun strongly-typed file-file konfigurasi.
Aplikasi Web biasanya memiliki web.config, sementara Windows GUI/layanan aplikasi memiliki aplikasi.config file.
Aplikasi-tingkat config file mewarisi pengaturan dari global configuration file, misalnya mesin.config.
Koneksi string telah yang telah ditetapkan skema yang dapat anda gunakan. Catatan bahwa ini potongan kecil sebenarnya adalah sebuah aplikasi yang valid.config (atau web.config) file:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Setelah anda telah didefinisikan aplikasi anda.config, anda dapat membacanya di kode menggunakan ConfigurationManager kelas. Don't diintimidasi oleh verbose MSDN contoh; it's benar-benar cukup sederhana.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Sering mengubah *.file konfigurasi ini biasanya bukan ide yang baik, tapi kedengarannya seperti anda hanya ingin melakukan satu kali setup.
Lihat: https://stackoverflow.com/q/502411/453277 yang menjelaskan bagaimana untuk memperbarui connectionStrings
bagian dari *.file konfigurasi pada saat runtime.
Perhatikan bahwa pilihan anda akan melakukan perubahan konfigurasi dari installer sederhana.
Q: saya Kira secara manual mengubah beberapa <nilai>
di app.config, simpan dan kemudian tutup. Sekarang ketika saya pergi ke folder bin dan jalankan .exe file dari sini, mengapa tidak't itu mencerminkan perubahan yang diterapkan?
A: Ketika anda mengkompilasi sebuah aplikasi, aplikasi tersebut.config disalin ke direktori bin1 dengan nama yang sesuai anda exe. Misalnya, jika anda exe bernama "tes.exe", harus ada "teks.exe.config" di direktori bin. Anda dapat mengubah konfigurasi tanpa mengkompilasi ulang, tetapi anda akan perlu untuk mengedit file konfigurasi yang dibuat pada waktu kompilasi, bukan aplikasi asli.config.
1: Perhatikan bahwa web.config file-file tersebut tidak pindah, tapi bukan tinggal di lokasi yang sama di compile dan waktu penyebaran. Satu pengecualian untuk ini adalah ketika sebuah web.config [berubah][4].
Pilihan konfigurasi baru diperkenalkan dengan .NET Inti. Cara yang *.config file karya tidak muncul untuk telah berubah, tapi pengembang bebas untuk memilih yang baru, lebih fleksibel konfigurasi paradigma.
[2]: http://msdn.microsoft.com/en-us/library/ms254494(v=vs. 110).aspx
[4]: https://msdn.microsoft.com/en-us/library/dd465318(v=vs. 100).aspx
Hanya, App.config adalah XML
berdasarkan format file yang memegang Aplikasi Tingkat Konfigurasi*.
Contoh:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="key" value="test" />
</appSettings>
</configuration>
Anda dapat mengakses konfigurasi dengan menggunakan ConfigurationManager
seperti yang ditunjukkan dalam bagian dari potongan kode di bawah ini:
var value = System.Configuration.ConfigurationManager.AppSettings["key"];
// value is now "test"
Catatan: ConfigurationSettings
adalah usang metode untuk mengambil informasi konfigurasi.
var value = System.Configuration.ConfigurationSettings.AppSettings["key"];
Hanya untuk menambahkan sesuatu yang saya telah hilang dari semua jawaban - bahkan jika itu tampaknya konyol dan jelas segera setelah anda tahu:
File yang telah diberi nama "App.config" atau "app.config" dan dapat terletak di proyek anda pada tingkat yang sama seperti misalnya Program.cs.
Saya tidak tahu jika lokasi lain yang mungkin, nama-nama lain (seperti aplikasi.conf, seperti yang disarankan di ODP.net dokumentasi) tidak bekerja untuk saya.
PS. Saya mulai dengan Kode Visual Studio dan menciptakan sebuah proyek baru dengan "dotnet baru". Tidak ada konfigurasi file yang dibuat dalam hal ini, saya yakin ada kasus-kasus lainnya. PPS. Anda mungkin perlu untuk menambahkan paket nuget untuk dapat membaca file konfigurasi, dalam kasus .NET CORE ini akan menjadi "dotnet menambahkan Sistem paket.Konfigurasi.ConfigurationManager --versi 4.5.0"
Aplikasi.Config adalah sebuah file XML yang digunakan sebagai file konfigurasi untuk aplikasi anda. Dengan kata lain, anda menyimpan dalam hal apapun pengaturan yang anda mungkin ingin perubahan tanpa harus mengubah kode (dan recompiling). Hal ini sering digunakan untuk menyimpan string koneksi.
Lihat [artikel MSDN ini][1] tentang cara untuk melakukan itu.
[1]: https://web.archive.org/web/20141214231417/http://msdn.microsoft.com/en-us/library/ms254494(v=vs. 80).aspx
Anda dapat mengakses tombol di App.Config dengan menggunakan:
ConfigurationSettings.AppSettings["KeyName"]
Take alook di Thread ini