我正在处理一个具有专有文件格式的项目。该项目具有需要安装的大型程序和不需要安装的较小查看器。我希望能够从主应用程序中导出“自打开” .exe的文件-也就是说,您可以双击该exe,然后嵌入式文件将显示出来(这是为了将查看器传递给那些拥有未安装能够查看它的主应用程序-它们只会绕过文档。

我对如何执行此操作有些迷茫。我一直在调查的两个想法已经走到了尽头。他们是:

1)将文件嵌入查看器中。我可以通过Visual Studio手动完成此操作,并且已经有了一个可行的演示,但我想不出一种快速执行此操作的方法。

2)创建一个自解压存档,将文件和exe提取到temp,并在命令行上使用文件名运行exe。听起来很容易,而且可能(尽管很笨拙),但是我遇到了一个问题,即存档或安装程序似乎没有命令行来执行所有这些操作。

有什么想法吗?我更喜欢第二个,因为它很容易,但是第二个,因为它似乎更能证明子弹/减少了hacky。

有帮助吗?

解决方案

虽然将exe捆绑到文档中以使其成为自动打开的文档是一个很不错的主意,但我认为这不是解决问题的最佳方法。问题在于文档需要不易获得的特定查看器。因此,使观看者尽可能容易获得。

这就是Xint0在评论中建议的内容。寻找一种使查看者尽可能容易获得的方法。无需担心盗版,因为它只是专有格式的查看器,因此唯一对它感兴趣的人将是那些已经拥有无法打开文档的人。因此,请将查看器发布到您公司的网站上,并鼓励使用完整软件的公司在其网站上发布指向查看器的链接,以便其客户可以轻松找到它。

其他提示

使用您的方法(1):

如果使用的是.NET,则可以将查看器程序作为一个程序集,而将文档作为另一个程序集,然后使用 ILMerge 之类的东西将它们组合成一个最终的可执行文件。

ILMerge是一个命令行程序,因此您应该能够自动执行该步骤。

这样,让您的自定义查看器本质上只是“加载与我在一起的另一个程序集”,然后也许在另一个程序集上调用一个函数以获取数据就应该相当容易了。

难题的另一部分是如何生成“文档”程序集。我不确定这些步骤,但似乎应该可行。

也许使用CMake或类似工具生成VStudio项目,然后使用MSBuild将其构建到程序集中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top