2010-07-08 44 views
2

當我創建一個Windows Installer程序包(比如說使用WiX),並且我應該安裝應用程序App.exe以及App.exe.config應該配置文件有它自己的組件還是應該是應用程序可執行文件的配套文件?應該將App.Config作爲應用程序的配套文件還是放在其自己的組件中?

<Component Id="C.App.exe"> 
    <File Source="App.exe"/> 
</Component> 
<Component Id="C.App.exe.config"> 
    <File Source="App.exe.config"/> 
</Component> 

<Component Id="C.App.exe" Guid="PUT-GUID-HERE"> 
    <File Id="F.App.exe" Source="App.exe"/> 
    <File Source="App.exe.config" CompanionFile="F.App.exe"/> 
</Component> 

如果我因一些外部屬性安裝不同App.exe.config文件(說像測試釋放運行時環境)不會影響我應該做出怎樣的選擇?

回答

4

答案取決於。閆提到Rob的文章是很好看的,這裏是另一個:

定義安裝組件 http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx

訣竅是要了解成本和維修是基於密鑰文件,默認版本的規則是如何工作的,你怎麼樣計劃在將來爲您的應用程序提供服務並基於此做出您的決定。

+0

即使你的鏈接沒有回答我的特定問題,它可能是如何創建組件的最簡潔的描述。 – 2010-07-10 12:25:19

+0

請務必閱讀http://msdn.microsoft.com/zh-cn/library/aa368599(VS.85).aspx,http://msdn.microsoft.com/zh-cn/library/aa368599(VS。 85).aspx和http://msdn.microsoft.com/en-us/library/aa368267(VS.85).aspx 對不起,答案真的是'它取決於'。另請閱讀http://blogs.msdn.com/b/windows_installer_team/archive/tags/best+practice+guidelines/ Tao 1-6。 – 2010-07-10 15:18:23

1

建議將單個資源(文件,註冊表項等)放入單個組件中。在這種情況下,此資源是組件的KeyPath。 Windows安裝程序手錶各部件的關鍵路徑,以決定是否值得安裝,維修,升級等

羅布Mensching的This article詳細解釋的事情。

+0

有沒有這樣的普遍reccomendation。瞭解從成本計算和可用性方面爲組件選擇密鑰文件的含義更爲重要。 – 2010-07-08 15:56:42

+0

我同意。儘管我認爲「一種組件一種資源」對於少量文件來說是一種很好的方法,以防萬一某個資源實際上是一個單一的安裝單元,但「它依賴於」通常更爲正確。 +1給你的答案:) – 2010-07-09 06:56:58

+1

我同意1每個也是一個好的起點。問題是App.Config文件非常有趣,它們將應用程序資源和配置數據混合在一個原子文件中。 Windows安裝程序並非真正爲此設計的,因此在維護它時必須非常有用。覆蓋或不覆蓋通常會導致問題。 – 2010-07-09 12:52:11

相關問題