如何防止我的C#程序按其运行';安装了什么?

如何防止我的C#程序按其运行';安装了什么?,c#,installation,scheduled-tasks,C#,Installation,Scheduled Tasks,我正在用C#开发一个控制台应用程序,它每周只能在特定的日期/时间运行一次。当我修改、发布和安装应用程序时,安装程序总是运行该程序。我必须在代码的开头添加一个if语句来比较当前的日期/时间,我必须在重新编译/重新发布时手动更改当前的日期/时间,以确保在安装新版本时程序不会运行。虽然这样做有效,但不得不这样做似乎很愚蠢 我肯定我错过了一个明显的场景,我只是在等待某个英雄给我一个当头棒喝的时刻 谢谢 (编辑以更准确地描述日程安排。)如果您的问题是无法控制安装或发布进程是否将运行该程序-您可以让主程序运

我正在用C#开发一个控制台应用程序,它每周只能在特定的日期/时间运行一次。当我修改、发布和安装应用程序时,安装程序总是运行该程序。我必须在代码的开头添加一个if语句来比较当前的日期/时间,我必须在重新编译/重新发布时手动更改当前的日期/时间,以确保在安装新版本时程序不会运行。虽然这样做有效,但不得不这样做似乎很愚蠢

我肯定我错过了一个明显的场景,我只是在等待某个英雄给我一个当头棒喝的时刻

谢谢


(编辑以更准确地描述日程安排。)

如果您的问题是无法控制安装或发布进程是否将运行该程序-您可以让主程序运行某个命令行参数,如果没有它,它将直接退出

如果程序通过调度器运行,请让调度器传入正确的参数

比如说

public static void Main(string[] args)
{
   if (args.Length == 1 && args[0].Equals("NOW_IS_THE_TIME"))
   {
       // Run
   }
}

您还可以在设置中保存一个标志,指示它是否是第一次运行,如

中建议的,谁将在每天的特定时间运行它?什么样的逻辑决定了现在是否合适?我认为您正在寻找
Windows服务
应用程序。在这里阅读更多->你是说你的安装程序正在自动运行程序?比如“完成后运行”选项?可能有助于了解您是如何创建安装程序的,您是否可以更改“完成后运行”设置?我使用发布向导将安装程序发布到网络位置,然后运行setup.exe进行安装。我使用计划的任务来安排应用程序在适当的日期/时间运行。虽然这个解决方案比我目前正在做的要好,但它看起来仍然很笨拙。我只是想让安装程序安装应用程序,而不是运行它。@MarkPetereit-我同意,但是你的问题应该围绕你正在使用的特定安装\发布过程。正如我所说的-这是针对您无法控制安装\publish的情况,我理解。你的解决方案没有回答我的问题。