我想在安装后首先运行应用程序。我知道我可以使用用户设置。例如:
if(Properties.Settings.Default.CheckFirstTime == true)
{
MessageBox.Show("1st run");
Properties.Settings.Default.CheckFirstTime = false;
Properties.Settings.Default.Save();
}
else
{
MessageBox.Show("Later run");
}
但在这种情况下,当用户再次卸载并重新安装应用程序时,无法捕获第一次运行。 此外,我不想使用数据库,因为它可能被操纵的数据库替换。
确保在安装后首次运行应用程序的最佳方法是什么?
答案 0 :(得分:0)
根据您的安装方法,可能值得使用注册表。
最初安装程序时,将没有用于存储属性的注册表项。 如果它们不存在,请将它们写入注册表,因为它被认为是第一次运行。
使用此方法,卸载时不会删除密钥,因为程序会自行管理密钥,而不是允许安装程序处理密钥。
以下链接描述了与C#中的注册表进行交互。 https://www.codeproject.com/Articles/3389/Read-write-and-delete-from-registry-with-C
如果您正在使用MSI作为安装程序包,则可以将其配置为在卸载时留下注册表数据,这将解决此问题。根据您用于创建MSI的工具,配置不同,但由于格式支持,它应该在大多数安装构建器中实现,而不是支持生成MSI。
如果使用安装防护,文档的以下部分介绍了如何创建和删除注册表项 - http://helpnet.flexerasoftware.com/installshield23helplib/helplibrary/IHelpRegistryKeys.htm