2017-08-08 34 views
0

我不喜歡與xdt轉換戰鬥,因爲這對我來說太過分了,而且會消耗相當多的時間。它更容易爲每個配置文件擁有一個完整的web.config副本,並在變更中靜態編寫代碼。我可以讓web部署使用完全覆蓋的靜態web.config嗎?

比如我有一個配置輪廓和發佈配置文件(MyNewProfile),我想我的發佈配置只使用Web.MyNewProfile.config當它被部署。

但我想有Web.MyNewProfile.config因爲只是簡單的文本的只是一個單純的web.config文件。所以沒有轉換髮生,它只是用Web.MyNewProfile.config中的內容完全替換Web.config。

這可能嗎?

回答

3

只需將您的Web.WhateverTransform.config文件中的整個配置元素作爲替換進行轉換,然後在該元素內粘貼任何內容......這不完全是您要求的內容,但它看起來像一個公平的解決方法。只有一個轉換調用,然後你的整個配置文件被轉換爲你想要的任何東西,滿足我對你的主要目標的理解:輸出一個帶web.Another.config內容的web.config,同時不需要不斷地照顧變換電話。

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Replace"> 
    <!-- this will be the only element within the configuration node post-transform --> 
    <thing></thing> 
</configuration> 
1

我不認爲網絡系統部署在Visual Studio會爲你做這個(我可能是錯的...希望有人會糾正我),但你可以讓Web部署無需任何轉換運行,然後在Web部署完成後,手動將自己的配置文件複製到已部署文件的頂部,如果您想獲得真正的想象,可以自己編寫腳本。

+0

「一旦Web Deploy結束,手動將您自己的配置文件複製到部署文件的頂部」,我會在做這些之前進行轉換。我想我只是感到驚訝,我不能有這個開箱即用。這對於MS來說比變換更簡單。 – red888

+0

此外,這是不完全的VS系統是的MSBuild和msdeploy據我瞭解 – red888

+1

你只需要改變一個更高的水平元素,如<配置>作爲一個完整的替代品。這與運行沒有轉換不同,但它有效地產生了OP所需的輸出。 – Trioj

相關問題