2009-09-16 24 views
30

Settings.settings tạo Settings.Designer.cs có thể tạo ra app.config sau đó được sao chép vào thư mục đầu ra là Foo.exe.config. Khi tôi phân phối ứng dụng mà không có tệp cấu hình, không có gì xấu xảy ra. Vậy, tập tin đó là gì?app.config là gì?

Trả lời

34

Nếu bạn không có tập tin cấu hình, nó sử dụng các giá trị mặc định từ nhà thiết kế. Tuy nhiên, tệp cấu hình cho phép người dùng/quản trị viên dễ dàng thay đổi cài đặt - chẳng hạn như máy chủ mà bạn trò chuyện, chủ đề, v.v. Nếu bạn không có tệp, bạn sẽ mong đợi những cài đặt này được lưu ở đâu?

Bạn có thể có cài đặt cho mỗi người dùng cũng như cài đặt cho từng ứng dụng, được lưu trữ ở các vị trí khác nhau.

+1

Ồ, vì vậy tệp cấu hình dành cho các ứng dụng không có giao diện để định cấu hình cài đặt của riêng chúng? – CannibalSmith

+0

bạn định lưu trữ các cài đặt này ở đâu sau đó, trong db? –

+2

@CannibalSmith: Nếu bạn muốn tạo hệ thống cấu hình hoàn chỉnh của riêng mình, bao gồm cả bộ nhớ, sau đó bạn có thể bỏ qua app.config. Tại sao tái tạo bánh xe mặc dù? Lưu ý rằng hệ thống cấu hình trong .NET * có khả năng mở rộng (vì vậy bạn có thể lưu trữ các thiết lập trong registry, cơ sở dữ liệu, vv) nhưng nó hơi khó hiểu và kém tài liệu trong khía cạnh đó. –

6

Tệp cấu hình ứng dụng chứa các cài đặt cụ thể cho ứng dụng. Tệp này chứa các cài đặt cấu hình mà thời gian chạy ngôn ngữ chung đọc (chẳng hạn như chính sách ràng buộc lắp ráp, các đối tượng truy cập từ xa, vv) và các cài đặt mà ứng dụng có thể đọc.

+1

Có, tôi đã đọc hướng dẫn, nhưng tệp * thực sự * là gì? – CannibalSmith

+2

@CannibalSmith: Chính xác là - cài đặt cấu hình. Tôi không hiểu tại sao bạn bối rối. –

+0

Khi tôi xóa nó, cài đặt cấu hình không bị mất. Cài đặt cấu hình được lưu ở đâu đó trong Users/Foo/AppData/BlahBlah. – CannibalSmith

1

Bạn có thể lưu trữ cấu hình của mình trong tệp đó.

Khuôn khổ .Net sẽ tự động tải tệp cấu hình bằng exe-name.config.

Nếu bạn không sử dụng bất kỳ cấu hình trong ứng dụng của bạn, sau đó không có gì xấu sẽ xảy ra ...

4

Tệp cấu hình là tùy chọn, nếu không tồn tại các môi trường như ASP.NET sẽ quay trở lại tệp machine.config được lưu trữ trong thư mục hệ thống .NET để nhận mặc định máy rộng.

Nếu bạn thực sự thêm mã vào ứng dụng của mình để truy xuất cài đặt từ tệp cấu hình (giả sử sử dụng lớp ConfigurationManager) và nó không tồn tại, bạn sẽ nhận được giá trị null.

Đó là lý do tại sao điều quan trọng là phải kiểm tra danh tiếng này và yêu cầu ứng dụng của bạn đưa ra quyết định riêng về cách/nếu tiếp tục.