C# 我应该沿着WPF应用程序开发控制台应用程序吗?

C# 我应该沿着WPF应用程序开发控制台应用程序吗?,c#,wpf,console-application,C#,Wpf,Console Application,我用C#/WPF构建了一个相当简单的应用程序,它在表示每个月的单独文件夹中查找、复制txt文件,然后将它们打包到一个大txt文件中,但每个月都在每个月文件夹中 有很多像10000这样的文件,每个月的txt文件可以达到1.5GB,所以需要25分钟才能完成 这两个步骤是分开的,复制到相应的月份文件夹中,然后第二步是为每个月打包一个txt文件 我希望能够在执行其他繁重任务时自动执行这些步骤,例如运行检查数据完整性的Access 2000宏(也需要20分钟才能完成)、按顺序运行TSQL存储过程(20分钟

我用C#/WPF构建了一个相当简单的应用程序,它在表示每个月的单独文件夹中查找、复制txt文件,然后将它们打包到一个大txt文件中,但每个月都在每个月文件夹中

有很多像10000这样的文件,每个月的txt文件可以达到1.5GB,所以需要25分钟才能完成

这两个步骤是分开的,复制到相应的月份文件夹中,然后第二步是为每个月打包一个txt文件

我希望能够在执行其他繁重任务时自动执行这些步骤,例如运行检查数据完整性的Access 2000宏(也需要20分钟才能完成)、按顺序运行TSQL存储过程(20分钟才能完成finsih)。我开始在Powershell脚本中这样做

我可以构建另一个控制台应用程序,它包含复制和打包的步骤,并按意愿运行这些步骤,但它应该是单独的应用程序吗? 我可以将WPF应用程序用作控制台应用程序吗?
或者构建一个库应用程序并在单独的WPF和控制台应用程序中使用它?

您也可以将WPF应用程序用作纯控制台应用程序


您可以这样做:当您从命令行调用EXE时,然后添加一个参数,例如,
/c
“console”或类似参数。然后,在应用程序的
main
功能中,查找该参数,设置后,继续作为控制台应用程序,不创建任何窗口。

您也可以将WPF应用程序用作纯控制台应用程序


您可以这样做:当您从命令行调用EXE时,然后添加一个参数,例如,
/c
“console”或类似参数。然后,在应用程序的
main
函数中,查找该参数,当设置该参数时,然后继续作为控制台应用程序,不要创建任何窗口。

我会将所有共享逻辑放在WPF应用程序和控制台应用程序都使用的程序集中。我肯定会按照@EdPlunkett的建议做,并将它们分离成单独的程序集。由于它可能需要很长时间才能运行,您可以更进一步,在headless实现上添加某种外部接口,例如gRPC,并让UI连接到该接口以获取状态。也许这应该在windows服务中完成。从传递任务的输入消息队列中读取。将结果输出到另一个消息队列。然后,WPF前端可以用来添加任务并报告结果。人们还为windows或windows任务调度程序编写了各种类似cron的应用程序。我会将所有共享逻辑放在WPF应用程序和控制台应用程序都使用的程序集中。我肯定会按照@EdPlunkett的建议和建议去做将这些部件分离成单独的组件。由于它可能需要很长时间才能运行,您可以更进一步,在headless实现上添加某种外部接口,例如gRPC,并让UI连接到该接口以获取状态。也许这应该在windows服务中完成。从传递任务的输入消息队列中读取。将结果输出到另一个消息队列。然后,WPF前端可以用来添加任务并报告结果。人们还为windows或windows任务调度程序编写了各种类似cron的应用程序。是的,这是合理的。但是需要为每个控制台参数设置一个机制。顺便问一下,我应该在项目属性的“调试”选项卡的命令行参数中添加什么?如果不在项目的命令行参数中设置一些字母,它就无法编译。是的,这是合理的。但是需要为每个控制台参数设置一个机制。顺便问一下,我应该在项目属性的“调试”选项卡的命令行参数中添加什么?如果不在项目的命令行参数中设置一些字母,它将无法编译。