【问题标题】:Bundling some information with an executable?将一些信息与可执行文件捆绑在一起?
【发布时间】:2012-10-31 02:08:12
【问题描述】:

我在我的网络服务器上使用 IIS 7.5,我正在创建一个发布到该服务器的 C# WPF 程序,以便人们可以下载该程序。

现在,人们使用http://.../Software/Shapeshifter/Setup.exe下载程序

但是,我希望杂志等的编辑能够制作我的程序的品牌副本,以便他们可以选择品牌。

例如这个链接: http://.../Software/Shapeshifter/Setup.exe?brandName=test&brandImage=http://uriToImage.example.com

然后在启动时从我的程序中读取它,以正确标记应用程序。

目前我正在使用 ClickOnce 来执行此操作,因为它允许 Web 调用此类参数。但是,它只能在 Internet Explorer 中正常工作。

我一直在考虑以下方案来解决它:

  1. 制作 .EXE 文件 HttpHandler。
  2. 请求 .EXE 文件时,检查参数。
  3. 以某种方式将参数嵌入到 .EXE 文件中(我该怎么做?)
  4. 从应用程序中读取参数(同样,我该怎么做?)

为了让这一切变得更简单,假设我的程序是单个 .EXE 文件,而 Setup.exe 实际上是程序的可执行文件本身,没有任何包装安装程序(即使情况并非如此)。

有什么建议吗?

【问题讨论】:

  • 也许你应该问问自己有没有ClickOnce的替代品
  • 您可以“模拟”编译时 Visual Studio 执行的步骤。例如。手动编译和链接资源(图像、字符串)到你​​的可执行文件和那些东西中。
  • 如何即时制作一个自解压的 zip 文件,并在存档中包含可配置的内容?如果你能找到一些可以压缩成 exe 的东西,也可以在 zip 中启动一些东西,那么你就在做生意。

标签: c# asp.net iis-7.5 clickonce


【解决方案1】:

老实说,我会首先在 EXE 中编译一个巨大的字符串资源,可以轻松识别(非常特定的 HEX 组合),将 EXE 作为二进制文件打开,搜索该位置并将任何数据放入其中。不是很漂亮,但应该可以。

但是在网上深入挖掘之后,我终于找到了一个既免费又支持从命令行执行的资源编辑器。

工具是Resource Hacker。 命令行用法在tutorial中有描述(搜索“Using Scripts in Resource Hacker”)

【讨论】:

  • 我喜欢这种方法。我以前用它替换 Windows 启动屏幕。只要它通过命令行运行良好,就是这样。不过,如果代码已签名,这可能会成为问题?
  • 延迟签名应该可以解决它:msdn.microsoft.com/en-us/library/t07a3dye(VS.80).aspx。还有其他主题涉及重新签署应用程序。
猜你喜欢
  • 2013-10-31
  • 2016-08-04
  • 2015-04-24
  • 2012-05-24
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多