2011-07-07 23 views

Trả lời

7

Bạn phải tham khảo trực tiếp ứng dụngCài đặt bạn đang cố gắng ghi đè và chỉ định rõ thuộc tính có giá trị được thay thế.

<configuration> 
    <!-- section definitions for all elements in <configuration> tag --> 
    <configSections> 
    <!-- section group, meaning: there will be a <applicationSettings> tag in you configuration--> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <!-- defines that there will be a <appname.Properties.Settings> tag inside your <applicationSettings> tag --> 
     <section name="appname.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 

    <applicationSettings> 
    <appname.Properties.Settings> 
     <!-- name of the property you want to override --> 
     <setting name="setting1" serializeAs="String"> 
     <!-- new value --> 
     <value>new string value</value> 
     </setting> 
    </appname.Properties.Settings> 
    </applicationSettings> 
</configuration> 
+0

nơi 'appname' đến từ đâu? –

-1

Chỉ thông qua mã:

ví dụ:

if (bool.Parse(ConfigurationManager.AppSettings["overridethis"].ToString())) 
{ 
    //use overridden value 
} 

Tuy nhiên, vấn đề của bạn là duy trì các giá trị cấu hình khác nhau trong các môi trường khác nhau, khi đó tôi sẽ sử dụng AppSettings.

Sau đó, bạn có thể sử dụng tệp ghi đè dành cho nhà phát triển.

<appSettings file="..\user.config"> 

Xem http://www.compiledthoughts.com/2005/03/overriding-webconfig-app-settings-with.html

+0

Các OP được hỏi về Settings.settings và không phải là 'phần ApplicationSettings'. –

+0

điểm chụp - bài đã được sửa đổi! – BonyT

0

Nó phụ thuộc vào phạm vi của các thiết lập. Nếu cài đặt phạm vi ứng dụng của nó thay đổi giá trị của nó trong app.config là đủ.

Tuy nhiên, nếu cài đặt phạm vi người dùng thì giá trị hiện tại trong app.config chỉ là mặc định được sử dụng cho người dùng mới và mọi người dùng đã sử dụng ứng dụng sẽ có giá trị hiện được sử dụng được lưu trữ trong một tệp riêng biệt .config, do đó, việc thay đổi giá trị trong app.config sẽ không có hiệu lực đối với người dùng đã chạy ứng dụng một lần.

Do thay đổi này giá trị của cài đặt phạm vi người dùng có thể là một tác vụ phiền hà. Bạn có thể kiểm tra các câu trả lời sau đây để biết thêm thông tin về việc thay đổi một thiết lập phạm vi sử dụng:

Changing User Scope Application Setting

0

Sử dụng tập tin cấu hình khác nhau cho sản xuất và cho bạn. Về cơ bản về sản xuất bạn sẽ biên dịch trong RELEASE, vì vậy nếu bạn sử dụng Visual Studio cho nó, hãy sử dụng các sự kiện xây dựng bài đăng để sao chép tệp cấu hình RELEASE trong trường hợp bạn chuẩn bị một bản dựng cho sản xuất.

Tôi nghĩ tình trạng này thay vì thay đổi nó từ mã, như đối với người khác là dễ dàng hơn nhiều để xem differenc trong tập tin cấu hình, sau đó đi sâu vào các mã để tìm tất cả những thứ if/else.

1

Đối với một phạm vi ứng dụng giá trị chuỗi kết nối:

<connectionStrings> 
    <add name="appname.Properties.Settings.setting1" connectionString="test string" providerName="dbProvider"/> 
    </connectionStrings> 
Các vấn đề liên quan