カスタムインストーラアクションを使用して、アプリケーションのインストールまたはアンインストール中にカスタムアクションを実行できます。これを行うには、CustomAction
から派生するクラスを含む新しいクラスライブラリを追加する必要があります。
は、手順は次のとおりです。
- は、新しいセットアッププロジェクトを追加します。 (プロジェクトテンプレートをお持ちでない場合は、ここからVS2013、VS2015またはVS2017をダウンロードしてインストールしてください)
- メインプロジェクトのプライマリ出力をセットアッププロジェクトに追加します。
- 新しいクラスライブラリプロジェクトを追加します。
- 新しいインストーラアクションをクラスライブラリプロジェクトに追加し、これらの手順の最後にコードを使用します。
- 右、ソリューションエクスプローラで、ビューメニューでセットアッププロジェクトをクリックしカスタムアクションを選択し、セットアッププロジェクト
- にクラスライブラリの主な出力を追加します。
- カスタムアクチンエディタで、アンインストールを右クリックし、カスタムアクションの追加...を選択し、クラスライブラリのプライマリ出力を選択します。
- アクション名を、ファイル名をに変更し、プロパティーを
CustomActionData
に正確に設定すると、正確には/path="[TARGETDIR]\"
になります。
- ソリューションとセットアッププロジェクトを再構築します。
- プロジェクトをインストールします。
カスタムアクションのコード
System.Configuration.Install
アセンブリへの参照を追加して、次の内容を持つプロジェクトにクラスを追加します。あなたはここに必要なロジックを簡単に持つことができます。
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
namespace InstallerActions
{
[RunInstaller(true)]
public partial class RemoveFiles : Installer
{
protected override void OnAfterUninstall(IDictionary savedState)
{
var path = System.IO.Path.Combine(Context.Parameters["path"], "log");
System.IO.Directory.Delete(path, true);
}
}
}
アプリケーションを公開するには、ClickOnceを使用していますか? – ZerosAndOnes
ClickOnceとは何かわかりません。Visual Studioでインストーラをビルドしています – shadowsora
[clickonceアプリケーションをアンインストールした後に余分なファイルを削除する]の可能性があります(https://stackoverflow.com/questions/7829151/removing-extra-files-after -uninstalling-a-clickonce-application) – user12345