我有两个版本的相同MSI包:'正版'和'开发者' . 前者是用于运输,而后者是为了测试等而在开发人员的计算机上构建的 . 我想防止意外泄漏“开发者”版本,以便最终用户无法安装它 . 有哪些可能的方法?
MSI采用WiX构建,以防万一 .
我见过Securing an msi to prevent unauthorized use,但那里的答案主要集中在防止启动而不是安装 . 我不需要对包内容进行模糊处理,加密或保护 . 由于安装了错误的软件包,我只需要保护不合格的用户免受意外地拧紧机器上的东西 .
2 回答
老实说,因为MSI是一本开放式书籍(使用ORCA编辑),所以最好在运行时在应用程序中执行此类强制(DRM) . 我可以在MSI中建议各种技术,但有些人可能会知道他们在做什么 .
你的“泄漏”问题是什么?你不相信你的开发者吗?你不相信你的CM /发布实践吗?你有一个强大的NDA吗?适当的IT安全性?
如果你只是想防止意外滥用 - 也就是说,有人在不知不觉中安装了想要用户副本的开发人员副本 - 我会建议一个简单的启动条件 . 你会记录“开发人员”必须在他们的机器上放置一些东西(可能是文件,注册表项,甚至是环境变量),然后让msi检查 . 然后它将拒绝安装,除非“我是开发人员”足迹在那里 .
如果要避免占用空间,可以要求"developers"从命令行启动msi并传递
DEVELOPER=1
,而是检查属性 . 或者更极端,您可能需要DEVELOPER
属性的特定和更改值 . 这一切都取决于你想让它成为你产品的"developer"有多烦人 .请注意,这对于恶意滥用至少是不安全的 . 除了其他限制之外,它不会阻止允许访问所有文件的管理安装 .
还要注意,遵循通常的启动条件模式以避免防止卸载软件包仍然是一个明智的想法 .