Tôi đang thiết kế một dự án ASP.NET MVC4 Web App. Trong thư mục gốc của dự án của tôi, tôi có tệp thông tin mặc định là Web.config
với các phần tử tương ứng của tôi. Cụ thể, tôi có một vài yếu tố được xác định là appSettings
. Ví dụ như một đoạn trích để chứng minh điều này:Truy cập appSettings từ nhiều tệp Web.config
<appSettings>
<add key="foo" value="bar" />
</appSettings>
Đương nhiên, tôi có thể truy cập phần tử này trong mã sử dụng ConfigurationManager.AppSettings["foo"]
. Điều này làm việc hoàn hảo cho tôi. Tuy nhiên, tôi đang tạo một gói NuGet cùng với dự án của tôi. Gói được cài đặt trong thư mục riêng của nó trong thư mục Areas
của dự án của tôi. Ở đây, trong thư mục gốc của gói của tôi, tôi có một tệp khác Web.config
. Điều này là để khi một người dùng khác nhập gói NuGet, cấu hình cho các tài nguyên gói có nguồn gốc từ gói. Hãy để của gói Web.config
chứa sau:
<appSettings>
<add key="dirEnabled" value="true" />
</appSettings>
Chỉ cần làm rõ về đường dẫn tương đối, bây giờ tôi có hai tập tin Web.config, một ở ./Web.config
và một ở ./Areas/PackageName/Web.config
.
Trong gói của tôi, tôi muốn truy xuất giá trị cho dirEnabled
. Để làm như vậy, tôi thực hiện cuộc gọi: ConfigurationManager.AppSettings["dirEnabled"]
. Tuy nhiên, điều này ném một lỗi. Có vẻ như chỉ có bộ sưu tập appSettings đang được truy xuất từ ./Web.config
chứ không phải tệp cấu hình gói của tôi. Có thể lấy bộ sưu tập appSettings từ tệp cấu hình của gói của tôi thay vì tệp cấu hình gốc của dự án không?
cũng thấy http://stackoverflow.com/questions/11351106/multiple-appsettings-files-is-it-possible –