簡體   English   中英

如何使用版本管理刪除\\添加更改Web.Config標記?

[英]How Can I Use Release Management To Remove \ Add Change Web.Config Tags?

眾所周知,在VS2010及更高版本中,使用了Web.config轉換來刪除web.config文件中的添加更新標簽和屬性。

發布管理功能可以在web.token.config內部切換值(約定是類似__ConnectionString__的變量)

但是,要刪除整個部分該怎么辦? 還是為其他環境添加一個? 例如, qa不應具有調試選項,因此在轉換中我們可以隱藏復制代碼

我確實試圖在轉換和發布管理之間建立聯系,但是不能,它們的行為不同,單個構建定義必須知道要使用哪個web.config文件(我使用web.QA.configweb.prod.config ),而發布模板對其qaprod路徑只有一個構建定義。

因此,一個具有兩個階段( qa->prod )且具有相同構建定義的發行模板不能一次對qa轉換,而一次對prod (因為它再次在構建定義中定義,從何處進行轉換)隱藏復制代碼

:/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false /p:Configuration=QA /p:TransformConfigFiles=true

我已經嘗試過此鏈接 但是它不能幫助構建定義根據發布路徑轉換正確的web.config 他只是構建了web.release.config ,這沒有幫助。

我也嘗試了許多其他站點,但沒有一個站點回答一個簡單的問題:發布管理如何將Web配置文件轉換成不僅僅是簡單的值交換(在我的情況下還不夠),如何添加標簽,將其刪除,更深入地更改配置。

發布管理是用於實現連續遞送的工具,直至它失敗的階段(此時它被視為無效並且進展沒有進一步的)或即一個給定的構建是通過輸送管道的不同階段部署不變 (保存為配置值)到達管道的末端。

如果您需要在階段之間更改除配置值以外的任何內容,這可能是您的環境在各個階段之間根本不同的征兆,這與連續交付的核心原則之一背道而馳。 也許您正在嘗試將不同的構建部署到不同的階段,這絕對不是連續交付。

在這里的博客系列文章解釋了如何使用發布管理來連續交付。 這篇文章解釋了管理web.config的幾種方法之一-請注意,沒有web。$ some_environment $ .config的概念。

說了這么多,我們大多數人都必須忍受功能障礙,因此,如果您確實確實需要更改web.configs,則可以使用xdt:Transform =“ Remove”之類的功能。

作為所有這些的腳注,您應該意識到,TFS 2015 Update 1附帶了一個全新的基於Web的版本的Release Management,並且如果可能的話,可能需要等待這個版本,盡管這可能會晚了一年或明年年初之前。 觀看視頻以品嘗。

感謝您的答復,在環境之間進行更改的原因是,在qa \\ prod中,您不希望僅在QA環境中進行調試模式\\黃屏\\跟蹤。

我想知道為什么很難轉換所有這些(不同環境的)Web配置文件。 然后我查看了構建服務器的輸出,並發現了所有內容! 在構建機器中創建的構建文件夾中,您會找到每個版本\\ build服務器ip \\ c $ \\ Builds \\ some number \\ solution Name \\ Build Definition name \\ Sources \\ TFS-> web的所有轉換文件。 config.QA-> web.config.Prod完全轉換。 然后,您可以x將其復制到目標位置,然后重命名(可以使用powershell完成)或使用發行版管理來進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM