如何在InstallShield 2016专业版(21天试用版)中安装此应用程序期间执行应用程序代码?

时间:2017-02-02 06:57:22

标签: c# installshield

我现在创建了我的C#WPF Prism MVVM模块化应用程序的Windows安装项目(ISM)。我用它来安装InstallShield 2016 Premier(21天试用版)。在我的C#WPF应用程序中,我有名为IsFirstRunAfterInstallation的Properties.Settings.Default标志。这个标志的类型是bool。我需要在安装过程中将此标志设置为true 。在第一次运行应用程序完成安装后,将检查IsFirstRunAfterInstallation标志,如下所示:

if (My_assembly_name.Properties.Settings.Default.IsFirstRunAfterInstallation)
{
    // do some actions here that must be done when application runs first time after its installation.
    . . . . . . . . . . . . . . .
    My_assembly_name.Properties.Settings.Default.IsFirstRunAfterInstallation = false;
    My_assembly_name.Properties.Settings.Default.Save();
}

如果IsFirstRunAfterInstallation标志是 tru e,那么当应用程序第一次运行时需要执行的一些C#代码将被执行(如上所示)。所以我需要将IsFirstRunAfterInstallation标志设置为 true ,如下所示:

 My_assembly_name.Properties.Settings.Default.IsFirstRunAfterInstallation = true;
 My_assembly_name.Properties.Settings.Default.Save();

在我的应用程序在客户计算机上的每次安装期间,并在安装后第一次运行应用程序时进行检查。所以我有以下问题:如何使用InstallShield 2016专业版(21天试用版)在应用程序安装期间执行应用程序代码?

1 个答案:

答案 0 :(得分:1)

如果您的应用程序的每个版本都需要IsFirstRunAfterInstallation为true(默认情况下),那么我认为您不需要对installshield执行任何操作。

1-将IsFirstRunAfterInstallation默认值设置为true(在应用程序属性中)。

2-更改每个版本的应用程序版本号(从应用程序属性或直接在AssemblyInfo.cs类中)。

在安装后应用程序首次运行/启动时始终如此,因为对于每个新版本的应用程序,在%AppData%\ Local \\\\中创建一个单独的目录,并将设置复制/保存到user.config。 / p>

对于上述方法,您不需要执行任何自定义/附加操作,因为应用程序会自行维护特定于版本的设置,但您可以使用以下替代方法: 1-创建一个单独的exe(控制台应用程序)或dll,并将其用作自定义操作。要么 2-从installshield启动应用程序并传递命令行参数/ IsFirstLaunch:True

可以在应用程序main中接收从installshield自定义操作传递的参数:

private static void Main()
{
string[] args = Environment.GetCommandLineArgs();
//Process args here
}
    OR
private static void Main(string [] args)
{
//Process args here. 
}