2011-08-23 40 views
17

Tôi đã theo cấu hình cho mail của tôi:Làm cách nào để chuyển đổi phần web.config này?

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory pickupDirectoryLocation="C:/test"/> 
     <network host="localhost" userName="" password=""/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

này được phiên bản .Release tôi:

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" xdt:Transform="RemoveAttributes(deliveryMethod)"> 
     <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Làm thế nào để loại bỏ

<specifiedPickupDirectory pickupDirectoryLocation="C:/test"/> 

vì vậy nó không hiển thị trong tôi .Release ở tất cả?

Ngoài ra, tôi muốn xóa các không gian tên khác như System.Diagnostics hoàn toàn. Cú pháp để làm như vậy là gì?

Trả lời

22

Đối specifiedPickupDirectory yếu tố này nên làm việc:

<specifiedPickupDirectory xdt:Transform="RemoveAll" />.

Đối System.Diagnostics:

<system.diagnostics xdt:Transform="RemoveAll"></system.diagnostics>

-4

@katit, bạn nên duy trì hai cấu hình khác nhau cho dev và phát hành.

webconfig bạn nên năng động và lấy configs như sau

/qa/yoursettings.config 


/release/yoursettings.config 

thêm một mẫu

<connectionStrings configSource="config\qa\connectionStrings.config"/> 

khi bạn đi đến qa hoặc phát hành, chuyển đổi web.config của bạn cho phù hợp.

theo cách này, nó sẽ sạch hơn rất nhiều.

+0

Tôi thích cách VS2010 biến đổi và xuất bản web.config cho tôi. Vì vậy câu hỏi .. Tôi đang làm rất nhiều biến đổi khác và nó là dễ dàng hơn nhiều sau đó để có cấu hình khác nhau và xuất bản chúng bằng tay. – katit

+2

-1: anh ta đã hỏi một cách rõ ràng về các biến đổi web.config, một tính năng của Visual Studio 2010. –

+3

Tôi đồng ý với John. Anh ta hỏi về việc chuyển đổi cấu hình và mã của bạn là một sự trở lại cho những ngày trước khi chúng tôi có khả năng đó. – NotMe

1

Hơn là cố gắng để loại bỏ các cấu hình từ phiên bản phát hành của bạn, bạn có thể mang nó từ phiên bản cơ sở và chỉ cần thêm nó vào phiên bản .Debug? Điều đó có thể đơn giản hơn. Tuy nhiên nếu bạn muốn loại bỏ nó, tôi nghĩ bạn có thể sử dụng <specifiedPickupDirectory xdt:Transform="Remove"/> hoặc một cái gì đó tương tự.

+0

Không chắc tại sao mọi người lại bình chọn đề xuất này, tôi sẽ upvote nó. Trong trường hợp của tôi gỡ lỗi là máy chủ thử nghiệm của tôi và phát hành máy chủ sản xuất. Tôi đang sử dụng phiên bản cơ bản để phát triển. – katit

+5

Câu trả lời hay (+1). Tuy nhiên nó phải được chỉ ra rằng khi một ứng dụng web được thực hiện từ bên trong studio trực quan nó không làm việc chuyển đổi cấu hình.Điều đó có nghĩa là chúng ta phải để lại một lượng công cụ trong web.config thông thường phải được loại bỏ. Việc chuyển đổi chỉ xảy ra khi xuất bản các trang web. Điều này có thể không phải là vấn đề nếu bạn chỉ kiểm tra bằng cách xuất bản hoặc đến máy chủ IIS cục bộ hoặc máy chủ dev từ xa. – NotMe

16
<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" xdt:Transform="Replace"> 
     <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

này sẽ thay thế cho toàn bộ thẻ với bạn .. hy vọng điều này là những gì bạn đang tìm kiếm ..

điều tốt về việc này là bạn dnt kết thúc gây ô nhiễm thay đổi của bạn cấu hình với lệnh remove không cần thiết như một số câu trả lời được nêu ở đây ..

xem xét trường hợp bạn có nhiều thẻ con.

+0

Tôi đã thử và kiểm tra điều này và sử dụng nó thường xuyên cho các biến đổi của tôi – Baz1nga

+0

Tôi thích thay thế toàn bộ phần của mình, đặc biệt nếu sau này bạn cần sửa đổi các yếu tố mà bạn không tính đến. –

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