我有一个奇怪的场景,我有一个C#Windows窗体应用程序和一个在VS 2015中构建MSI的安装项目。
在Windows窗体项目中,我已正确创建并设置了InstallerClass.cs,在安装项目中我已经配置了安装自定义操作并将CustomActionData设置为:/ CODE =“[CODE]”/ GROUP =“ [GROUP]“,并且InstallerClass属性设置为true。
当在命令提示符下运行安装程序时:“msiexec / i / qb myapp.msi / COMPANYCODE = 12345 / GROUP = Test”它运行正常,我可以在InstallerClass的Install函数中获取COMPANYCODE和GROUP属性和它们填充12345和测试。然后在Installer函数中,我可以使用这些值并根据需要执行自定义操作(在这种情况下将其写下来供以后使用)。
但是,当我通过Microsoft Intune部署msi时,参数被完全忽略,并且在InstallClass的Install函数中为null ...你对此有什么建议吗?
使用Orca打开时,我可以在MSI中看到CustomAction表: Orca table view picture 非常感谢提前!
最诚挚的问候,理查德
答案 0 :(得分:1)
检查详细日志是否确定,并注意我正在黑暗中捅,因为我不熟悉Intune如何启动,但我猜你没有标记属性{{1} }和CODE
为GROUP
(或者Secure="yes"
;您的问题与这些相矛盾)。当属性不安全时,某些场景将禁止将其传递给执行序列。有关此信息,请参阅SecureCustomProperties property。
答案 1 :(得分:0)
问题可能是属性值没有被转移到安装的执行部分,因为它们没有标记为安全。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571(v=vs.85).aspx
在Visual Studio设置中不支持此功能,因此您需要使用Orca等编辑MSI文件。转到Property表并查看SecureCustomProperties,它可能是:
SecureCustomProperties PREVIOUSVERSIONSINSTALLED; NEWERPRODUCTFOUND
你将需要添加CODE和GROUP,分号分开。