gpt4 book ai didi

php - 使用 PHP 编辑 Windows 安装程序 (.msi)

转载 作者:行者123 更新时间:2023-12-04 19:38:48 25 4
gpt4 key购买 nike

好的,所以我在这一点上完全迷失了,我通常是一个前端开发人员,根据需要了解一点 php。不过,我有一个客户端,它需要一个下载门户,用户输入他们的电子邮件地址进行下载。这很容易,除了一次捕获。应用程序需要将该电子邮件存储在 xml 文件中。

我整天都在谷歌上搜索试图解决这个问题,可能只是我不知道要搜索什么,因为我是在 mac 上工作的前端 Web 开发人员。 PHP 安装在 CENT OS 网络服务器上,该服务器需要能够提取 msi、插入 xml 文件,然后重新编译以提供给用户。

任何帮助或指导都会非常有帮助。谢谢!

最佳答案

Windows 安装程序包 (.MSI) 是 OLE/COM 结构化存储。 Microsoft 提供了一个 Win32 API (MSI.dll) 和一个 COM 自动化接口(interface) ("WindowsInstaller.Installer")。

在 Unix 上,大部分 Win32 API 已被移植到 Wine。

现在我从来没有这样做过,但我看到了一些很有希望的东西。有一个名为 OpenMCDF 的开源项目.它是用 Visual Studio/.NET 编写的,但声称它支持 Mono。其中有一个测试应用程序(文档资源管理器),当你说 File |打开它显示 .MSI 作为下拉选项,所以他们至少在考虑它。

无论如何,在源代码中,我看到了流和存储的类。准备好 MSI,您会发现文件被压缩到(Microsoft)CAB 文件中,并通过将其插入流中嵌入到 MSI 中。

在这种情况下,我可能会使用更新的 XML 文件创建一个新的文件柜,将其记录在媒体表中并更新文件表以反射(reflect)新的序列号、文件大小和媒体 ID。

对于 MSI 专家来说,这在 C# 中是微不足道的。对于 .NET 专家来说,这真的很难。对于那些既不想在 CentOS 上用 PHP 做这件事的人……祝你好运。

另一种方法是使用未压缩的文件构建 MSI,然后将其用作模板来覆盖文件并构建自解压 EXE。这对你来说可能会容易得多。只需确保 MSI 和 XML 被缓存以进行修复事务。

或者只是设置一个 Windows 服务器并将构建传递给它并在完成后将其取回。

关于php - 使用 PHP 编辑 Windows 安装程序 (.msi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com