2010-08-18 74 views
0

我們正在使用C#開發Windows應用程序。我們想根據品牌名稱更改GUI(背景圖像和其他控制圖像和文本)。基於MSI文件名更改Windows應用程序的GUI

該應用程序的典型安裝程序名稱將爲brandname_programname.msi。我們必須從MSI中獲取品牌名稱,並根據此分配GUI。請注意,我們沒有傳遞任何其他對象,這些設置用於指示MSI中不同品牌名稱之外的差異。我們怎樣才能達到這個結果?

我們不想要WPF解決方案。

+5

這似乎是一個非常脆弱的方法 - 人們隨時重命名MSI文件。 – Bevan 2010-08-18 11:06:32

回答

4

您的描述讓我相信您將在所有安裝中發送品牌圖像和文本的整個集合,然後通過更改要過濾gui元素的msi文件的名稱。

我覺得這是一個非常不穩定的解決方案,因爲完全依賴管理員而不是重命名msi文件 - 例如,如果管理員將名稱從「CompanyA_programname.msi」更改爲「programname.msi」,會發生什麼情況,以「在文件名中使用我們的名字是沒有用的 - 我們只有這個名稱」來證明這個決定是正確的。

此外,許多客戶不希望與競爭對手分享他們的品牌元素 - 因此,在msi中包含所有品牌形象可能會與您的客戶協議相沖突。

在我看來,你應該從另一種方式來解決問題 - 爲每個品牌構建一個單獨的msi文件,或者只是構建單一類型的msi並強制安裝環境提供gui元素作爲文件夾或一個zip文件。然後使用這些元素來填充gui,而不管公司。

當然,文件夾/郵編方法仍然是不穩定的,並且在沒有這樣的文件時您必須處理這種情況,但仍然沒有單點故障。

根據我以前的經驗,我強烈建議你爲每個品牌建立一個單獨的msi文件。這樣可以最大限度地減少因濫用或惡性行爲而造成失敗的風險。

相關問題