误报风险:为每个用户创建一个新的二进制文件似乎是非常不明智的,因为恶意软件扫描程序及其识别“已知”二进制文件版本(通过哈希)的能力。
如果您为每个用户创建一个新的二进制文件,恶意软件套件可能会突然开始隔离您的设置,而没有任何警告或意义。这个问题不再是微不足道的,因为到处都加强了对恶意软件的控制,并且以提升的权限运行的设置是“风险管理的主要嫌疑人”。
数字签名可以提供帮助,但它们只是您进行设置的保证,而不是设置不包含任何有害内容的保证。没有什么比签名的恶意软件向量更糟糕的了。事实上,恶意软件来自您的证据是肯定的 :-)。注意:有些人甚至设法篡改签名的可执行文件。后两个事实的结合是非常令人不安的。
应用程序设置:我喜欢从设置中消除这些功能和细节,并让应用程序本身在安装后首次启动时负责自己的配置。我发现这更可靠且更易于调试。
自定义配置:您可以通过各种机制在运行时应用自定义配置信息。您应该添加一个转换,或者您可以在安装程序旁边创建一个嵌入此信息的批处理文件并传递给 MSI 或setup.exe。
批处理文件?:msiexec.exe命令行支持向 MSI 传递参数。如果您将设置设计为支持这些“传入”参数,则可以生成一个批处理文件,该文件将使用这些参数运行设置。
msiexec.exe /i myinstaller.msi ADDLOCAL="Program,Dictionaries" SERIALKEY="1234-1234" /qn
变换:您还可以创建一个包含参数的变换(变换是一个微小的 MSI 片段,其中包含对原始 MSI 的设置和更改):
msiexec.exe /i myinstaller.msi TRANSFORMS="mytransform.mst" /qn
转换很难在 Linux 机器上创建,因为它们是仅 Windows 原生的 COM 结构存储文件。我不确定这是否可能,但也许。
一些链接: