我正在开发一个专有文件格式的项目。 该项目有一个大的安装必要的程序和一个较小的查看器,不需要安装。 我希望能够从我的主要应用程序导出文件是“自我打开”.exe的 – 也就是说,你可以双击exe文件,embedded文件将显示(这是为了让观众传递给有没有安装能够查看它的主应用程序 – 他们只会传递文档)。
我有点迷失在如何做到这一点。 我一直在调查的两个想法已经走到了尽头。 他们是:
1)将文件embedded查看器中。 我可以通过Visual Studio手动执行此操作,而且我已经有了一个工作演示,但我无法find一种方法来实现这一点。
2)创build一个自解压的压缩文件,将文件和exe提取到temp,并在命令行上运行带有文件名的exe文件。 这听起来很容易和可能(尽pipehacky),但我已经遇到的问题,档案或安装程序似乎没有必要的命令行来做这一切。
Windows桌面交换机/工具栏
在我的新窗口安装Image.FromStream不以相同的方式工作
为什么“ n”在Windows上换行?
Windows窗体中的标准Windows菜单栏
有任何想法吗? 我更喜欢第二个,因为它很容易,但第一个,因为它似乎更加防弹/lesshacky。
WPF模式窗口作为WinForms中的工具窗口消失
检查用户是否不活动
最新单声道在centos上
如何将标签或其他元素dynamic地添加到Windows窗体面板?
在将exe文件捆绑到文档中以使其成为一个自我开放的文档是一个很酷的主意,但我认为这不是解决问题的最佳方案。 问题是这些文件需要一个特定的查看器,而这个查看器不是现成的。 所以尽可能让观看者尽可能的简单。
这就是Xint0在评论中所建议的。 找到一种方法使观众尽可能随时可用。 没有必要担心盗版,因为它只是一个专有格式的查看器,所以唯一感兴趣的人将是那些已经拥有一个他们无法打开的文档的人。 因此,请在您的公司网站上发布观众,并鼓励使用完整软件的公司在其网站上发布链接,以便他们的客户可以轻松找到。
使用你的方法(1):
如果你使用.NET,你可以使你的浏览器程序成为一个程序集,而你的文档是另一个程序集,然后使用ILMerge或类似的方法将它们合并成一个最终的可执行文件。
ILMerge是一个命令行程序,所以你应该能够自动执行这个步骤。
这样一来,让您的自定义查看器实质上只是“加载与我一起的其他程序集”,并且可能调用另一个程序集的函数来获取数据应该相当容易。
唯一的难题是如何生成“文档”程序集。 我不完全确定这些步骤,但似乎应该是可行的。
也许使用CMake或类似的方法来生成VStudio项目,然后使用MSBuild将其构建到程序集中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。