2015-01-08 19 views
5

Tôi đang cố gắng thiết lập chuyển đổi web.config để sửa đổi một số giá trị. Tôi đang sử dụng ví dụ này do Octopus Triển khai:Web.Config Chuyển đổi không thay đổi bất kỳ giá trị

http://docs.octopusdeploy.com/display/OD/Configuration+files

siêu rút gọn xuống phiên bản của web.config:

<?xml version="1.0" ?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

biến đổi:

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 

đầu ra:

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

Tôi đang sử dụng công cụ này để xem trước chuyển đổi: https://webconfigtransformationtester.apphb.com/

như bạn có thể thấy nó không làm gì cả. Tôi đã xem xét rất nhiều ví dụ, nhưng rõ ràng là tôi đang thiếu một cái gì đó. Mọi sự trợ giúp sẽ rất được trân trọng.

(Tôi cũng đã thử điều này không có may mắn):

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
     <compilation debug="false" xdt:Transform="Replace"> 
     </compilation > 
    </system.web> 
</configuration> 
+3

Bạn có chắc chắn về không gian tên của xml đầu vào? Nếu bạn thay đổi nó từ 'xmlns =" ​​http://schemas.microsoft.com/.NetConfiguration/v2.0 "' thành 'xmlns: xdt =" http://schemas.microsoft.com/.NetConfiguration/v2.0 "' thuộc tính 'debug' được loại bỏ khỏi đầu ra. –

+0

cảm ơn Matthias, đó là ... Tôi đã xem xét khoảng 10 nguồn tài nguyên khác nhau, và không ai trong số họ nói rằng tôi phải làm điều đó. Tôi sẽ đánh dấu đó là câu trả lời nếu bạn muốn gửi nó như vậy. –

+0

Điều gì thực sự bực bội là tôi đã sử dụng Visual Studio để tự động tạo các tệp biến đổi. Bạn sẽ nghĩ rằng nó sẽ đủ thông minh để thêm phần đó vào web.config ban đầu nếu nó được yêu cầu cho phép biến đổi. –

Trả lời

3

Các biến công trình như dự định vào công cụ xem trước trực tuyến đề cập đến cho web.config biến đổi https://webconfigtransformationtester.apphb.com/ khi bạn thay đổi không gian tên của web.config nộp từ

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 

để

<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 

Wh en này chuyển

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 

được áp dụng cho web.config chỉnh

<?xml version="1.0" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

thuộc tính debug được lấy ra từ kết quả:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <compilation targetFramework="4.0"> 
    </compilation> 
    </system.web> 
</configuration> 

Cập nhật: Như đã đề cập trong các ý kiến , cấu hình của tệp web.config không được có bất kỳ không gian tên nào. Thay vào đó, nó là cần thiết để thêm nhập khẩu này

<xdt:Import assembly="AppHarbor.TransformTester" 
      namespace="AppHarbor.TransformTester.Transforms"/> 

đến tập tin chuyển đổi (ít nhất, khi thử nghiệm với các đề cập thử nghiệm chuyển đổi trực tuyến):

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
<xdt:Import assembly="AppHarbor.TransformTester" 
    namespace="AppHarbor.TransformTester.Transforms"/> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 
+0

Trên thực tế, toàn bộ khai báo không gian tên cần được loại bỏ khỏi phần tử '' trong web.config. 'cấu hình' không nằm trong vùng tên. –

+0

@JohnSaunders Cảm ơn bạn đã biết thông tin, chỉ tìm thấy thông tin này tại đây: http://msdn.microsoft.com/en-us/library/ee248644%28v=vs.100%29.aspx (không biết liệu nó có áp dụng cho cài đặt không được sử dụng ở đây). Câu trả lời được đưa ra dựa trên ví dụ được đề cập ở đây: http://msdn.microsoft.com/en-us/library/dd465326.aspx –

+0

Bạn đọc các ví dụ sai. Tất cả các ví dụ trên trang đó là _transformation files_, không phải tệp web.config. –

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