C# 使用Topshelf重新启动窗口服务后重新创建文件夹

C# 使用Topshelf重新启动窗口服务后重新创建文件夹,c#,topshelf,C#,Topshelf,我正在使用Topshelf进行窗口服务,并使用configurationAfterInstall创建文件夹CreateFolder 现在,当我安装/启动服务时,将创建文件夹。很好 假设在一段时间后,我停止了服务并删除了创建的文件夹,然后在重新启动服务时,我希望重新创建文件夹。这可能吗 Topshelf配置中是否有任何设置,以便在重新启动服务时再次创建文件夹 HostFactory.Run( configuration => { con

我正在使用
Topshelf
进行窗口服务,并使用configuration
AfterInstall
创建文件夹
CreateFolder

现在,当我安装/启动服务时,将创建文件夹。很好

假设在一段时间后,我停止了服务并删除了创建的文件夹,然后在重新启动服务时,我希望重新创建文件夹。这可能吗

Topshelf
配置中是否有任何设置,以便在重新启动服务时再次创建文件夹

HostFactory.Run(
        configuration =>
        {
            configuration.AfterInstall(CreateFolder);
            configuration.Service<Service1>(
                service =>
                {
                    service.ConstructUsing(x => new Service1());
                    service.WhenStarted(x => x.Start());
                    service.WhenStopped(x => x.Stop());
                });
            configuration.EnableServiceRecovery(recoveryOption =>
            {
                recoveryOption.RestartService(1);
            });

            configuration.RunAsVirtualServiceAccount();

            configuration.SetServiceName("TEST");

            configuration.StartAutomatically();

TopShelf仅具有用于后安装的自定义操作。您可以连接到service Start()函数,使用directory.CreateDirectory(path)方法检查并创建目录。

根据它们的定义,它们只有
安装后
卸载后/卸载前
自定义操作确保TopShelf中没有
重新启动
,但是您可以简单地执行
Directory.CreateDirectory(一些路径)Start()
方法上的code>-如果重新启动服务时目录已经存在,则不会发生任何事情,但如果目录不存在,则会创建目录。
static void CreateFolder()
    {
            Directory.CreateDirectory(some path);
    }