我正在尝试为自己自动执行某些任务,并编写了一些.NET Core 1.0控制台应用程序.其中之一是BrowserRouter--一个简单的应用程序,基于url模式,决定在我点击http(s)链接时打开哪个浏览器/浏览器配置文件.
这工作正常,但总会出现控制台窗口,并立即消失.
有没有办法静默运行.NET Core控制台应用程序(隐藏控制台窗口)?
我知道在完整的.NET Framework中,可以将输出类型更改为Windows应用程序,但是对于.NET Core,这是不可用的(但是?).
Mar*_*ich 27
更新2018:在.NET Core 3.0+中,您将能够<OutputType>WinExe</OutputType>在csproj文件中进行设置.
目前,这不是直接可能的开箱即用,因为Windows exe文件包含一个标志,指示它是否是窗口在启动应用程序之前评估的"控制台"或"GUI"应用程序.但是这个标志可以使用editbin.exe(带有VS'C++构建工具afaik)来改变.
在此基础上,您可以创建一个独立的.NET Core应用程序("type": "platform"从中删除project.json并添加运行时部分),以便您的项目输出包含一个实际.exe文件并添加一个调用的构建后脚本editbin.exe /subsystem:windows yourapp.exe.
这可能不是最好或最干净的解决方案,但我以前使用过的技巧。如果启动新的 Windows 窗体应用程序,然后从 Program.cs 文件中删除对该窗体的引用,它将在后台运行该应用程序,任务栏或桌面上不会显示任何内容。但它确实出现在任务管理器中。
我用这个技巧编写了一个应用程序来对朋友恶作剧。它将在后台运行并以随机间隔发出系统蜂鸣声。同样,这可能不是最优雅的解决方案,而是一种实现方法。
| 归档时间: |
|
| 查看次数: |
12753 次 |
| 最近记录: |