winforms Visual Studio安装项目-卸载时移除运行时创建的文件

uajslkp6  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(183)

我正在创建一个C# .NET WinForms应用程序,并将安装程序创建为Visual Studio安装项目。
在Windows 10上,我可以在控制面板中删除已安装的文件。但是,在运行时,我的应用程序会创建一个包含日志文件的文件夹,并且在卸载应用程序时不会删除此文件夹和日志文件。
如何在卸载程序时也删除这些文件?

rsaldnfx

rsaldnfx1#

您可以使用自定义安装程序操作在安装或卸载应用程序期间执行自定义操作。为此,您需要添加一个新类库,其中包含从CustomAction派生的类。
为此,请执行以下步骤:
1.添加新的安装项目。(如果没有项目模板,请从此处下载并安装VS20 13VS 2015VS 2017 and VS 2019VS 2022的项目模板)
1.将主项目的主输出添加到安装项目中。
1.添加新的类库项目。
1.将新的安装程序操作添加到类库项目中,并使用这些步骤结尾处的代码。
1.将类库的主输出添加到安装项目中
1.在解决方案资源管理器中右键单击安装项目,然后在"视图"菜单中选择"* 自定义操作 *"。
1.在自定义actin编辑器中,右键单击uninstall并选择 * Add Custom Action ... *,然后选择类库的主要输出。
1.将操作重命名为 * RemoveFiles *,并在属性中将CustomActionData属性准确设置为/path="[TARGETDIR]\"
1.重新生成解决方案和安装项目。
1.安装项目。

    • 自定义操作代码**

添加一个对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);
        }
    }
}

相关问题