2010-10-18 32 views
1

我正在研究一個需要打上品牌的Windows應用程序。客戶將銷售給其他企業,並且需要爲每次銷售定製標識和名稱。如何將資源注入已建立的可執行文件

客戶端不知道如何使用visual studio!

我想我需要編寫一個打包程序來將自定義徽標和字符串資源注入到可執行文件中。我正在計劃使用WPF。但是由於這是一個關鍵的要求,如果這更容易,我願意用winforms來實現。

這樣做的最好方法是什麼?任何和所有的建議歡迎。

+2

您無法指定在運行時從外部文件加載圖像和名稱嗎? – 2010-10-18 19:14:29

+2

或者只是一個資源的DLL? – leppie 2010-10-18 19:16:34

回答

4

這聽起來像你以後有什麼是應用程序換膚。這並不意味着你必須解壓exe並注入資源。您只需從項目開始就考慮剝皮並構建應用程序以支持剝皮要求。

WPF將使您的應用程序變得更容易。將有幾種不同的方式來實現你想要的。

最簡單的方法是讓徽標圖像鬆動,並使用需要顯示此圖像的XAML文件的相對路徑引用它。

您應該查看WPF中的資源字典以及它們如何幫助您分組資源和支持蒙皮。 http://msdn.microsoft.com/en-us/library/ms750613.aspx

該文本會有點不同,但我不知道你需要什麼文本。你的意思是你需要本地化字符串還是隻需要不同的文本(所有相同的語言環境)爲不同的客戶端顯示?

0

瑣碎的解決方案是將位圖和EXE一起作爲單獨的文件提供。實際上,在EXE中替換嵌入的資源需要使用ildasm.exe進行反編譯並將其與ilasm.exe重新合併。 Ildasm.exe僅在Windows SDK中可用,它可以單獨下載。您的客戶可以很容易出錯並且可能性很小,您需要向他們提供一個.bat文件來執行此操作。

當然,任何人有興趣更換標誌,無論出於何種原因,將不通過替換單獨的圖像文件使用Ildasm.exe招放緩。因此,要使它變得更加複雜,那麼它就沒有什麼意義了。

+0

爲什麼不寫一個調用編譯器的小C#應用程序,即不管SDK(隨運行時提供)如何。 – leppie 2010-10-18 19:25:14

2

一種可能的解決方案(可能不是最簡單的一種)是使用編譯源代碼來生成子應用程序的父應用程序。您可以使用CSharpCodeProviderCompilerParameters類。將圖像添加爲嵌入式資源並將其檢索到子應用程序中。有源代碼的工作演示可在Slide Show Builder處獲得。

相關問題