2010-04-02 22 views
19

Tôi đã quen sử dụng các dự án triển khai web. Hiện tại tôi đang phát triển một ứng dụng web mới với VS2010 và muốn cố gắng làm quen với nguyên tắc web.config mới và các vấn đề triển khai.Làm thế nào để sử dụng các cài đặt ứng dụng trong cấu hình web.config mới trong VS2010?

Làm thế nào tôi có thể thay thế một thiết lập đơn giản như

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Tôi muốn có thiết lập này được thiết lập là True trong Debug, và sai trong phiên bản. Các mục trong Web.Debug.config và Web.Release.Config trông như thế nào?

Và bằng cách này: Có một số tài liệu về sự cố web.config mới không? Có vẻ như không thể tìm được từ khóa đúng cho google.

Trả lời

13

Bạn cũng có thể sử dụng cách này; cho môi trường prod chẳng hạn.

<applicationSettings xdt:Transform="Replace"> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String"> 
    <value>False</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Kính trọng.

+0

Bởi vì tôi vẫn có điều này để tìm ra: Một phép biến đổi chỉ áp dụng khi xuất bản một trang web/ứng dụng, không phải khi xây dựng/biên dịch nó. –

3

Bạn nên sao chép cài đặt này thành cả tệp cấu hình web - Web.Debug.config và Web.Release.config và đặt thuộc tính chuyển đổi xdt:Transform="SetAttributes" xdt:Locator="Match(name)".

Bạn có thể xem video hướng dẫn này - http://chriskoenig.net/index.php/2010/04/08/how-do-i-web-config-transformations-in-vs2010/

Hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn bạn rất nhiều =) – citronas

+0

Tôi rất vui khi giúp đỡ :) – Thea

+4

Xin lỗi đây không phải là câu trả lời đúng. "SetAttributes" chỉ đặt thuộc tính. Nếu bạn muốn thay đổi thẻ giá trị bạn cần "Thay thế"! –

45

Cách tốt nhất là nên làm như sau:

<applicationSettings> 
    <NAMESPACE> 
    <setting name="Testenvironment" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)"> 
    <value>True</value> 
    </setting> 
    </NAMESPACE> 
</applicationSettings> 

Thay vì Zubeyir gợi ý là một điều này sẽ chỉ thay thế specifed thiết chứ không phải thay thế toàn bộ phần applicationSettings.

+1

để được đề xuất cụ thể hơn bởi vì câu trả lời Zubeyir được đề xuất sẽ thay thế tất cả các cài đặt ứng dụng và khi bạn cập nhật phiên bản gỡ lỗi của mình bằng cách thêm cài đặt mới và bạn quên cập nhật phiên bản phát hành cũng như mọi thứ được thay thế bằng bản phát hành verion của webconfig – Kiarash

1

Đây là liên kết có nhiều mẫu về chủ đề này: http://msdn.microsoft.com/en-us/library/dd465326.aspx. Tuy nhiên, dường như có một vấn đề đặc biệt là với các biến đổi Web.config và applicationSettings: Tất cả các câu trả lời trên truy vấn này sử dụng xdt-Transform=“Replace” có vấn đề là chúng đưa thêm không gian trắng vào Web.config được triển khai vì định dạng XML. Điều này dẫn đến hành vi bị lỗi nếu bạn tiêu thụ các thiết lập kết quả. Dường như không có giải pháp. Đây là câu hỏi chưa được trả lời của tôi về vấn đề này: VS 2010 configuration transformation produces unwanted white space during deployment.

Các vấn đề liên quan