【问题标题】:How to Schedule Console Application C#如何调度控制台应用程序 C#
【发布时间】:2019-04-01 06:46:17
【问题描述】:

我创建了一个控制台应用程序,并在其中添加了 Microsoft.AnalysisServices dll。我希望这个应用程序每 30 分钟安排一次。

我已经发布了应用程序,但是当我在 Windows 任务计划程序中提供 setup.exe 路径时,任务没有运行

当我提供 bin/Debug 文件夹中的 applicationname.exe 路径时,应用程序运行

参考:https://www.c-sharpcorner.com/UploadFile/manas1/console-application-using-windows-scheduler/

但我不想将项目文件夹带到生产服务器,我需要一个 exe/setup 文件

我也尝试从桌面上的 bin 文件夹中复制 application.exe 文件,但它抛出异常“找不到 Microsoft.AnalysisServices”,这是屏幕截图:

请帮忙

【问题讨论】:

  • 保持简单:忘记发布应用程序 - 只需将调试或发布文件夹的全部内容(取决于您运行的构建)复制到您选择的文件夹并在任务计划程序中设置此路径。
  • @Filburt 我已经复制了一个文件夹中的所有文件,然后安排了该文件夹中的 exe,它对我来说工作正常,它第一次运行成功,但第二次在任务调度程序中有一条消息:此任务的实例已在运行中
  • 这是从不同上下文执行的旧经典、搁置任务,还是用户无权访问文件夹/文件?
  • 顺便说一句,我们几乎从不需要事物的图片。错误消息总是有用的。对于像这样的简单问题,加载文件的 4 行程序的 minimal reproducible example 比图片更有用。

标签: c# console


【解决方案1】:

对于(简单)控制台应用程序,最简单的解决方案是使用 Microsoft 从 .Net 开始就传播的内容:“xcopy 部署”。

根据您的构建目标(Debug 或 Release),从 [project dir]\bin\Debug 或 [project dir]\bin\Release 中获取所有内容并将其复制到您选择的应用程序文件夹中。

在您的计划任务中,引用此应用程序文件夹中的可执行文件。

您可以通过将自动复制任务作为构建后任务添加到项目配置来简化部署。

【讨论】:

    【解决方案2】:

    您需要复制整个输出文件夹(发布工件)。您可以省略 pdb 文件或 xml 文档之类的内容...如果您确实需要,还可以使用 ILMerge 等工具将 Analysis dll 等依赖项合并到一个文件中。

    【讨论】:

    • 我找不到发布工件文件夹
    • 转到构建 > 发布以设置它
    猜你喜欢
    • 2013-09-15
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2018-07-29
    • 2017-12-14
    相关资源
    最近更新 更多