5

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

我对如何做到这一点有点迷茫。我一直在调查的两个想法已经走到了尽头。他们是:

1) 在查看器中嵌入文件。我可以通过 Visual Studio 手动执行此操作,并且我有一个工作演示,但我无法找到即时执行此操作的方法。

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

有任何想法吗?我更喜欢第二个,因为它很容易,但第一个是因为它看起来更防弹/更少hacky。

4

2 回答 2

3

使用您的方法(1):

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

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

这样,让您的自定义查看器基本上只是“加载与我在一起的另一个程序集”并且可能调用另一个程序集上的函数来获取数据应该相当容易。

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

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

于 2011-06-17T16:10:16.637 回答
1

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

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

于 2011-06-17T16:38:45.460 回答