2010-12-14 39 views
0

我創建了一個WiX安裝程序,以在客戶站點上部署一組網站,並使用xmlfile將正確的主機名和連接字符串值插入我們的web.config文件。雖然更新執行正確的XMLFILE行動插上因爲UI不是空運行值使用Wix安裝程序執行升級時,Web.config定製丟失

msiexec /i Websites.msi /l*vx Website.log REINSTALL=ALL REINSTALLMODE=vomus 

:由於這些值進行升級時,來自我碰到的一個問題,安裝程序UI安裝使用。

有沒有辦法讓這些值進入安裝程序而不解析XML或者再次提示安裝工程師值?

乾杯, 達明

回答

2

您需要Remember Property模式只適用於XML而不是Regisry。 WiX沒有XML peek模式,因此您必須編寫自定義操作。

另一個值得注意的問題是,由於您正在修改XML,因此未來的升級默認情況下不會安裝XML的更新版本,因爲它現在擁有用戶數據。

+0

這可能不適用於IIS/ASP.NET(可悲的是沒有新東西),但是如果將XML分成2個XML,安裝將變得更容易。基本上一個文件,用戶不會修改安裝程序可以安全地替換一遍又一遍,另一個用戶/應用程序/安裝程序修改的XML文件具有您的變化點。基本上認爲stock.xml和覆蓋/ transform.xml。 – 2010-12-14 19:22:02

+0

這基本上就是我所做的。我希望永遠不必寫出自定義操作,但無法繞過它。 我放在一起(很骯髒)的C#DLL來讀取我需要從任何當前web.config和web.constants.config文件中的值,並將它們存儲爲現有的WiX變量。 不理想,我必須密切關注開發團隊的工作,但這足以讓我們繼續。 – 2011-01-06 15:23:31

0

如果你想你的web.config修改過程中只安裝,您可以調節包含XMLFILE元素與Not Installed條件的組成部分。在這種情況下,修改XML文件的操作將不會在升級過程中針對這些組件運行。

+0

不幸的是,我們將需要更新web.config,並且將原先賦予安裝程序的值插入到connectionStrings中。 我得到一個不好的感覺,我不得不寫一些連接字符串解析器作爲自定義操作或強制更新以某種方式彈出配置屏幕。 – 2010-12-14 10:43:44

相關問題