0

我正试图让我的网站与朋友的程序交谈。想想 iTunes - 一个安装了数十万个小东西的主程序。我们不想为成千上万的小东西中的每一个都创建一个 InstallShield 安装程序。

我们将文件分组到文件夹子结构中。我们有一个 .REG 文件,需要添加哪些注册表项才能查看新文件夹组。

但是有没有办法做一个读取注册表项的自解压 zip 文件,这样我们就知道他们在哪里安装了原始程序以便能够在那里转储新文件?我希望他们双击 EXE 并单击完成,然后一切正常。

(我一直在通过 IExpress.exe 查看 INF 和 CAB 文件,但没有找到答案。我记得 Package for the Web 没有读取注册表项的选项,但确实让您修改建议的安装小路。)

非常感谢。

最好的祝愿,安德里亚

4

2 回答 2

0

您是否尝试过Inno Setup工具链?它比一个简单的自解压 ZIP 文件要好一点,它是一个设置创建实用程序。我确信它有一些东西可以在注册表中添加一些条目,还要查看插件。

基本上,它是一个更改注册表的自解压可执行文件,它是一个安装程序。那你为什么不找一个合适的呢?

网址:http ://www.jrsoftware.org/isinfo.php

于 2011-04-26T17:54:25.940 回答
0

但是有没有办法做一个读取注册表项的自解压 zip 文件,这样我们就知道他们在哪里安装了原始程序以便能够在那里转储新文件?我希望他们双击 EXE 并单击完成,然后一切正常

嗯,是的,也不是。有自解压器可以在解压所有文件后运行程序。例如,DotNetZip 可以生成可以执行此操作的 SFX。

顺便说一句:普通的 SFX 只是一个 zip 文件,其中合并了一个“存根”可执行文件。存根 exe 可以做任何它想做的事情,但它做的最基本的事情是提取 zip 中的文件。当您使用 DotNetZip 生成 SFX 时,它会将其特定的存根嵌入到 zip 中。该存根知道如何提取文件,也知道如何在提取后调用程序。您还可以生成自己的存根,它可以做其他更奇特的事情。

所以你可以使用 SFX 来达到你的目的。运行时,它会提取,然后调用它的额外程序。该程序可以查看注册表,然后将提取的文件移动或重新定位到适当的位置。然后终止。

换一种说法,SFX 可能只有两个文件:要运行的程序(一个读取注册表的文件,另一个是嵌入式 zip。然后当 SFX 运行时,它会生成 2 个文件。然后它调用程序到 -运行,它读取注册表,然后解压缩包含的 zip 并将文件放入所需的位置。

好的,所以你可以做到。

你应该?

嗯,也许吧。这确实一个安装程序,因此,您应该决定是否要使用 zip 作为安装程序。不要忘记,如果您使用 SFX 作为安装程序,则没有很好的卸载方法。

于 2011-04-27T16:56:46.903 回答