如何将资源注入已经构build的可执行文件

我正在开发一个需要打上品牌的Windows应用程序。 客户将销售给其他企业,并需要为每个销售定制的标志和名称。

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

我想我需要编写一个打包程序来将自定义徽标和string资源注入到可执行文件中。 我正在计划使用WPF。 但是,由于这是一个关键的要求,如果这样做容易,我会愿意用winforms来实现。

做这个的最好方式是什么? 任何和所有的build议欢迎。

Solutions Collecting From Web of "如何将资源注入已经构build的可执行文件"

这听起来就像是在应用程序蒙皮之后。 这并不意味着你必须解压exe文件并注入资源。 您只需从项目开始就考虑剥皮,并构建应用程序以支持剥皮要求。

WPF将使您的应用程序变得更容易。 将有几种不同的方式来完成你想要的。

最简单的方法是放弃标识图像,并使用需要显示该图像的XAML文件的相对路径进行引用。

您应该查看WPF中的资源字典,以及它们如何帮助您分组资源和支持蒙皮。 http://msdn.microsoft.com/en-us/library/ms750613.aspx

文本会有所不同,但我不知道你需要什么文本去。 你的意思是你需要本地化的字符串,或者你只需​​要不同的文本(所有相同的区域设置)显示不同的客户端?

一种可能的解决方案(可能不是最简单的一种)是使用编译源代码来生成子应用程序的父应用程序。 你可以用CSharpCodeProvider和CompilerParameters类来完成。 将图像添加为嵌入的资源,并在子应用程序中检索它。 在幻灯片放映生成器中可以使用源代码的工作演示。

我最好的建议,你问的确切问题(虽然我怀疑有重新考虑确切的要求有另一种方法)将编写一个实用程序,使用ildasm反汇编程序集,然后使用ilasm重新组装,并包括新的资源文件。

http://msdn.microsoft.com/en-us/library/496e4ekx%28VS.71%29.aspx

微不足道的解决办法是将位图与EXE一起作为单独的文件提供。 实际上,替换EXE中的嵌入式资源需要使用ildasm.exe反编译并将其与ilasm.exe重新组合。 Ildasm.exe只能在Windows SDK中使用,可以单独下载。 错误的可能性很小,客户可以得到正确的结果,您需要提供一个.bat文件。

当然,无论出于何种原因,任何人都有兴趣更换标识,不会因为替换单独的图像文件使用Ildasm.exe技巧而变慢。 因此,要使它变得更加复杂,就没有多大意义了。