2017-02-01 5 views
0

私はWindowsサービスを持っており、その実行時にWindowsサービスのインストール場所に入れ子になったログファイルを記録します。私はアンインストール時にのみ上記のファイルを削除するカスタムアクションを作成しようとしています。しかし、実行時に "INSTALLLOCATION is invalid directory"エラーが表示されます。私は、カスタムアクションを実行すると、「=の後に」?」句で変更する必要があると仮定していますが、私はそれがどうあるべきかわからない。INSTALLLOCATIONが設定されているアンインストール時のCustomAction

をこれは.wxsは、ファイルの現在のコードである

<Binary Id="CustomActionEXE" SourceFile="$(var.MyApp.TargetDir)MyApp.CA.dll" /> 
<CustomAction Id="RemoveLogFilesCA" BinaryKey="CustomActionEXE" DllEntry="RemoveLogFiles" Execute="immediate" Return="check"/> 
<InstallExecuteSequence> 
    <Custom Action="RemoveLogFilesCA" After="RemoveFiles"> 
    (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") 
    </Custom> 
</InstallExecuteSequence> 
とカスタムアクションコード

public class CustomActions 
{ 
    [CustomAction] 
    public static ActionResult RemoveLogFiles(Session session) 
    { 
     // Error here: "INSTALLLOCATION is an invalid directory", value not set when the custom action is being executed After="RemoveFiles" 
     //string installLocation = session.GetTargetPath("INSTALLLOCATION"); 
     return ActionResult.Success; 
    } 
} 

答えて

1

まず、私が示唆したログファイルは、ユーザデータであり、1)は、アンインストール時に削除すべきではないと2)はProgramFilesFolderの下に保持するべきではありません。はProgramDataは次のようになりより良い場所。

これらのファイルを再帰的に削除する必要がある場合は、自分のCAでホイールを再作成しないでください。代わりにRemoveFolderEx Element (Util Extension)を使用してください。

関連する問題