当前位置:  开发笔记 > 编程语言 > 正文

如果应用程序在安装后第一次运行,请检查条件

如何解决《如果应用程序在安装后第一次运行,请检查条件》经验,为你挑选了2个好方法。

C#2008/3.5 SP1

我想检查应用程序是否第一次运行.我已经开发了一个应用程序,一旦安装在客户端计算机上.我想检查它是否是第一次运行.

我已经安装了使用Windows安装程序项目.

 if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.IsFirstRun)
 {
      // Do something here
 }

上面的代码适用于clickonce开发.但是我怎么能用Windows安装程序做类似的事情.

我想在应用程序安装时添加一个注册表.当程序第一次运行时(true),请检查此注册项目.一旦它第一次运行,编辑注册表为(false).

但是,而不是使用注册表,有没有更好的方法,我可以使用?



1> Henk Holterm..:

只需在"应用程序设置"中添加一个布尔值即可.最简单的方法是使用IDE和设置设计器.它必须是用户范围,但应用程序范围不可写.

第一次检测时,不要忘记切换值并保存设置.

代码如下所示:

 if (Properties.Settings.Default.FirstUse)
 {
     Properties.Settings.Default.FirstUse = false;
     Properties.Settings.Default.Save();

     // do things first-time only
 }


此解决方案的问题在于,当您重新部署应用程序时,除非您在卸载应用程序时将其擦除,否则用户设置仍然存在.因此,将`Properties.Settings.Default.FirstUse`设置为false将持续存在并在重新部署后提供错误的反馈.

2> Fraser..:

在注册表外部存储应用程序数据的好地方是应用程序数据文件夹.如果您在首次运行时创建此目录,那么您只需要在后续加载时对其进行测试.此外,如果您的应用程序需要它,那么您有一个良好的数据存储位置.

string data = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string name = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
string path = Path.Combine(data, name);

if (Directory.Exists(path))
{
  // application has been run
}
else
{
  // create the directory on first run
  DirectoryInfo di = Directory.CreateDirectory(path);
}

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有