在Install Shield

时间:2017-01-24 06:06:48

标签: visual-studio-2010 windows-installer installshield custom-action

我已在InstallShiled中的合并模块项目中添加了自定义操作。

PFA:屏幕截图了解更多信息。 Custom Action

我在Merge Module Project的Property Manager中设置了属性。

Key = "CustomActionData", Value = "[INSTALLDIR]"

PFA:截图更多信息。 InstallPath

我已经共享了MSI DLL源代码示例。

PFA:截图更多信息。 MSI DLL Source code

我已经构建了合并模块并添加到Basic MSI Project中。

我已从合并模块文件中添加了自定义操作。

PFA:截图更多信息。 Custom Action Added in Basic Project

我已经构建了基本的MSI项目,并且InstallShield生成了setup.exe。

当我运行setup.exe时,在自定义操作MSI DLL中调用安装函数。 但它会导致自定义操作数据失败。

PFA:屏幕截图了解更多信息。 Error

同样的问题在Visual Studio 2010安装程序上工作但安装屏蔽在安装期间无法使用

获取安装路径
UINT gp = ::MsiGetProperty( hInstall,
                               _T("CustomActionData"), 
                               customData, 
                               &len);

2 个答案:

答案 0 :(得分:0)

您需要将要设置的属性名称从CustomActionData更改为将接收CustomActionData的延迟自定义操作的名称。在这种情况下,这将是CustomActions。

答案 1 :(得分:0)

问题是:您没有使用Property Manager添加Property。

  1. 您需要在InstallShiled中执行自定义操作。

    Add Custom Action

  2. 您需要在自定义操作部分添加“新设置属性”。

  3. New Set Property

    1. 您需要在自定义操作部分填写“新设置属性”的信息。
    2. New Set Property fill up information

      1. 属性名称=自定义操作名称

        示例:

        Property Name =“Installation”

      2. 您需要在C ++ MSI DLL源代码中使用“CustomActionData”。

        示例:

        MsiGetProperty(hInstall,_T(“CustomActionData”),customData和& len);