C# Visual Studio安装项目-卸载时删除运行时创建的文件

C# Visual Studio安装项目-卸载时删除运行时创建的文件,c#,.net,winforms,visual-studio,setup-deployment,C#,.net,Winforms,Visual Studio,Setup Deployment,我正在创建一个C.NETWinForms应用程序,并将安装程序创建为一个VisualStudio安装项目 在Windows 10上,我可以删除控制面板中已安装的文件。但是,在运行时,我的应用程序会创建一个包含日志文件的文件夹,卸载应用程序时不会删除此文件夹和日志文件 如何在卸载程序时删除这些文件?在安装或卸载应用程序期间,可以使用自定义安装程序操作执行自定义操作。为此,您需要添加一个新类库,其中包含一个派生自的类 为此,请执行以下步骤: 添加新的安装项目。如果您没有项目模板,请从此处下载并安装,

我正在创建一个C.NETWinForms应用程序,并将安装程序创建为一个VisualStudio安装项目

在Windows 10上,我可以删除控制面板中已安装的文件。但是,在运行时,我的应用程序会创建一个包含日志文件的文件夹,卸载应用程序时不会删除此文件夹和日志文件


如何在卸载程序时删除这些文件?

在安装或卸载应用程序期间,可以使用自定义安装程序操作执行自定义操作。为此,您需要添加一个新类库,其中包含一个派生自的类

为此,请执行以下步骤:

添加新的安装项目。如果您没有项目模板,请从此处下载并安装,或 将主项目的主输出添加到安装项目。 添加一个新的类库项目。 将新的安装程序操作添加到类库项目中,并在这些步骤结束时使用代码。 将类库的主输出添加到安装项目 右键单击解决方案资源管理器中的“安装项目”,然后在“视图”菜单中选择“自定义操作”。 在自定义actin编辑器中,右键单击卸载并选择添加自定义操作。。。并选择类库的主输出。 将操作重命名为RemoveFiles,并在属性中将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发布应用程序?不确定ClickOnce是什么。。我正在Visual Studio中构建安装程序该线程的可能副本无法回答我的问题。然而,雷扎的回答正是我想要的,正是我想要的!只是想知道,除了使用特定的目标目录之外,我是否还可以获取安装目录?我在主应用中使用的AppDomain.CurrentDomain.BaseDirectory没有实现此上下文。参数[path]是安装目录。这篇文章非常有用。在我的情况下,我想在卸载应用程序后删除这些文件。因此,我在OnAfterUninstall上编写了安装程序代码,但它会删除我想要的文件,然后卸载应用程序。奇怪的有什么建议吗?