2017-04-21 11 views
1

Visual Studio 2015を使用してMSIを作成しています。特定のファイルが既にTARGETDIRに存在するかどうかチェックし、検索結果をカスタムC#のアクション。これまでは、[Launch Conditions]ビューで検索を作成し、それに応じてプロパティを設定しました。MSIの起動条件(検索対象マシン)からカスタムアクションに値を渡す

enter image description here

その後、私は、カスタムデータ項目として表示カスタムアクションでプロパティ名を渡す:私は私のカスタムの値を読んだとき

/CONFIG_EXISTS = "[CONFIG_EXISTS]"

をしかし、アクションコードでは、その値は空ですが、少なくとも文字列としてブール値を見つけることが期待されます。

protected override void OnAfterInstall(IDictionary savedState){ 
    var existingConfig = Context.Parameters["CONFIG_EXISTS"]; // Always has "" as value 
    .... // Other code 

私はここで何が欠けていますか?検索条件の結果をカスタムアクションC#コードで取得するにはどうすればよいですか?

+0

PhilDWそれが動作しない理由を説明します。 'TARGETDIR'や完全なファイルパスをカスタムアクションに渡し、ファイルがカスタムアクション自体に存在するかどうかを確認するだけです。 – zett42

答えて

1

TARGETDIRが初期化される前に、インストールの非常に早い段階で実行されるため、検索に失敗しています(TARGETDIRはインストールフォルダを提供するダイアログボックスでも変更できることに注意してください)。だから、このようなようにProgramFilesFolderの、CommonFilesFolderと、ここでの完全なリストなどの標準的なWindowsインストーラのフォルダのプロパティの用語で検索を再定義する必要があります。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx#system_folder_properties

関連する問題