使用任务计划程序在windows上计划.Net Core控制台应用程序

使用任务计划程序在windows上计划.Net Core控制台应用程序,.net,asp.net-core,.net-core,.net,Asp.net Core,.net Core,是否可以使用任务调度器计划.net core console应用程序每天在特定时间运行?默认情况下,应用程序将查看当前文件夹中是否存在appsettings.json,原因如下: var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange:

是否可以使用任务调度器计划.net core console应用程序每天在特定时间运行?

默认情况下,应用程序将查看当前文件夹中是否存在
appsettings.json
,原因如下:

    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();
    Configuration = builder.Build();

“appsettings.json”
替换为文件的完整路径。

我认为,在任务计划程序中创建任务时,您必须在应用程序文件夹中设置“开始”的值,即D:\Test\Test1。应用程序将在此文件夹中运行,并且应该能够找到appsettings文件。

创建一个内容为“dotnet myDLL.dll”的.bat文件 行动中 程序/脚本->“c:\yourpath\myBatFile.bat” 从-->“c:\yourpath”开始


完成。

是的,这是可能的。但是有一个窍门。由于某些原因,任务计划程序强制执行托管进程的完整路径和文件名,因此您需要在“程序/脚本”中输入“C:\Program Files\dotnet\dotnet.exe”。已使用最新修补程序在Windows Server 2012 R2上确认此问题。
Net核心程序进入参数框,不需要完整路径。但是,在“起始位置”中需要.Net核心程序位置路径。至少在程序希望从其位置找到一些文件的情况下是这样。

我花了2个小时试图找到这个问题的答案

你只需要为你的.Net核心控制台应用程序做些什么

  • 转到您的任务计划程序
  • 转到选项卡菜单并单击操作
  • 单击新建/编辑
  • 选择下拉列表:操作:启动程序
  • 程序/脚本:“C:\Document\MyConsoleApp.exe”
------>注意非常重要。将应用程序路径放在控制台应用程序所在的位置,因为任务计划程序必须读取配置 -起始位置(可选):C:\Document\

这解决了我的问题


干杯,伙计们

是的,这是可能的。描述到目前为止您已经尝试了什么,以及当前的问题是什么。现在您的问题已脱离主题。我的控制台应用程序位于文件夹D:\Test\Test1中。我可以从以下文件夹运行程序:dotnet MyApp.dll。但是,我不知道如何从发布的文件夹之外运行它。当我尝试像这样从外部运行它时,会出现一个错误:dotnet D:\Test\Test1\MyApp.dll。错误表示找不到appsettings.json。从发布的文件夹外运行.net core console应用程序的正确语法是什么?然后,您需要显示定义程序应读取appsettings.json的代码为什么被否决?每个人可能都不知道答案,这些答案对您来说都是微不足道的。实际上,
.SetBasePath(env.ContentRootPath)
不应该这样做,以便它不使用当前文件夹。但实际上是查看应用程序的基本路径吗?我敢打赌问题在于OP只是缺少这一行。@ScottChamberlain我认为这取决于他如何配置他的webhostbuilder。默认情况下,webhost builder使用
.UseContentRoot(Directory.GetCurrentDirectory())
我相信。。。那么,这难道不会让挫折之路也变得不正确吗?谢谢你的建议!我只是没有在任务调度程序中设置“开始”文件夹-这就是问题所在。顺便说一句,她投了赞成票。提供的答案有助于回答被问到的问题。提供的答案无法回答OP的问题。谢谢Prashant!“修复了它。@Prashant-当我使用asp.net Core 2.0创建控制台应用程序时,在bin/debug folder中没有生成
.exe
文件。请查看此链接是否有帮助。”。netcore 3.1控制台应用程序和Windows server 2016任务调度器,有关更详细的解决方案,请查看BroadTruck的答案:IMHO这是最完整的答案。我知道它是在其他答案之后出现的,但它的细节在其他答案中并不完全清楚。特别是对于像我这样习惯于调度控制台应用程序的“老方法”的人来说。。。。找不到我的appsettings.json文件…:-)开始工作了。