如何在安装程序类中使用afterInstall事件?

时间:2013-12-04 16:31:42

标签: c# installation

我在afterinstall事件下创建了一个注册表项。

private void install_AfterInstall(object sender, InstallEventArgs e)
{
    RegistryKey reg = Registry.ClassesRoot.CreateSubKey("*\\Shell\\Test");
    reg.SetValue(String.Empty, "My App");
    RegistryKey command = Registry.ClassesRoot.CreateSubKey("*\\Shell\\Test\\Command");
    command.SetValue(string.Empty, Application.StartupPath + "\\test.exe %L");
    command.Close();
    reg.Close(); 
}

如何正确使用此活动?如何创建使用此设置? installshield,innosetup等。或者我们可以使用installshield吗?

1 个答案:

答案 0 :(得分:0)

  

或者我们可以使用installshield吗?

您可以使用InstallShield添加注册表项。

[编辑:对于InstallShield Spring 2012,以下情况属实。对于不同版本的InstallShield,可能有不同的详细信息。]

在“安装设计器”选项卡的“系统配置”下,单击“注册表”。在底部窗格“目标计算机的注册表视图”中,创建要在安装时创建的子项(使其看起来像HKEY_CLASSES_ROOT\*\Shell\Test\Command)。

然后创建所需的值:HKEY_CLASSES_ROOT\*\Shell\Test中未命名的字符串值,其值为My App,而HKEY_CLASSES_ROOT\*\Shell\Test\Command中的未命名字符串值的值为"[INSTALLDIR]test.exe" "%1"

或者,您可以使用要设置的值导入.reg文件。

执行此操作将为注册表项创建一个组件。如果您希望将它全部放在一个组件中,请先创建组件,然后在该组件下面的“注册表数据”项下执行此操作。

这样做比调用你编写的代码更容易,就像你使用自定义操作(这是你调用代码的方式)一样,你还需要创建一个回滚动作,卸载操作和卸载回滚操作。