2017-02-02 14 views
0

C#WPF Prism MVVMモジュールアプリケーションのWindowsインストールプロジェクト(ISM)を作成しました。私はInstallShield 2016 Premier(21日間の試用版)を使用します。私のC#WPFアプリケーションでは、IsFirstRunAfterInstallationというProperties.Settings.Defaultフラグがあります。このフラグのタイプはboolです。インストールプロセス中にのこのフラグをに設定する必要があります。アプリケーションが最初に実行されたときに、インストールの完了後、IsFirstRunAfterInstallationフラグは、次のようにチェックされている:InstallShield 2016 Premier Editionでこのアプリケーションのインストール中にアプリケーションコードを実行する方法(21日間の試用版)?

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電子、アプリケーションの実行時に実行するために必要とされるいくつかのC#コードですか最初に実行されます(上記のように)。お客様のコンピュータ上で自分のアプリケーションの各インストール時に

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

とアプリケーションが最初に実行するときに、インストール後にチェックされています。だから私はIsFirstRunAfterInstallationフラグがfolowingように設定されていることが必要です。そこで、私は、InstallShield 2016 Premier Edition(21日間の試用版)を使用して、アプリケーションのインストール中にアプリケーションコードを実行する方法について、次の質問がありますか?

答えて

1

アプリケーションのすべてのバージョンでIsFirstRunAfterInstallation(デフォルトで)が必要な場合は、installshieldで何もする必要はありません。

1- IsFirstRunAfterInstallation(アプリケーションのプロパティで)のデフォルト値をtrueに設定します。

2すべてのリリースのアプリケーションバージョン番号を変更します(アプリケーションプロパティまたは直接AssemblyInfo.csクラスから)。

アプリケーションの新しいバージョンごとに、%AppData%\ Local \\\\に別のディレクトリが作成され、設定がuser.configにコピー/保存されるため、アプリケーションの最初の実行/起動時は常にtrueになります。

上記の方法では、アプリケーションがバージョン固有の設定をそのまま維持するため、カスタム/追加を行う必要はありません。ただし、別の方法があります。 1-別のexe(コンソールアプリケーション)またはdllカスタムアクションとして使用します。真

するInstallShieldカスタムアクションは、アプリケーションのメインで受信することができますから渡されたパラメータ:

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

注それはアップグレードシナリオを検討する価値があることをOR 2-/IsFirstLaunch何かをのInstallShieldからアプリケーションを起動し、コマンドラインパラメータを渡します。この「最初の実行」コードは、アップグレード後に再度実行する必要があります。インストールによってリセットされない場合、アプリはこれを他の方法で判断する必要があります。おそらくブール値の代わりに "最初の実行"コードが実行された最後のバージョンを格納しているかもしれません。 –

+0

また、同じアプリケーションバージョンを同じコンピュータに再デプロイ(再インストール)する場合は、IsFirstRunAfterInstallationをtrueに設定する必要があります。可能であれば、マイケル・ウーマン、助けてください。 – Prohor

+0

IsFirstRunAfterInstallationのデフォルト値がtrueに設定されている場合、すべてのリリース(デプロイメント)のアプリケーションバージョンを変更すると、アップグレード後の最初の起動時に常にtrueになります。 @MichaelUrman氏によると、フラグをfalseに設定する前に、アプリケーションの現在のバージョンをファイルシステム/ txtファイルに保存することもできます。 – Munawar

関連する問題