2016-08-04 7 views
21

私は自分のためにいくつかのタスクを自動化しようとしており、いくつか書きました。.NET Core 1.0コンソールアプリケーション。それらの1つはBrowserRouterです - 単純なアプリケーションで、URLパターンに基づいて、http(s)リンクをクリックしたときに開くブラウザ/ブラウザプロファイルを決定します。.NET Coreコンソールアプリケーションをサイレントモードで実行することはできますか(コンソールウィンドウを非表示にする)?

これはうまくいきますが、常に表示されてすぐに消えるコンソールウィンドウがあります。

.NETコアコンソールアプリケーションをサイレントモード(コンソールウィンドウを非表示)で実行する方法はありますか?

.NET Framework全体では、出力タイプをWindowsアプリケーションに変更することはできますが、それはの.NETコアではまだ使用できません。

+5

にMicrosoftの公式ドキュメントを読んでください! – VahidNaderi

+3

[コンソールを非表示にしてC#コンソールアプリケーションを実行する方法](http://stackoverflow.com/questions/836427/how-to-run-ac-sharp-console-application-with-the-console-非表示) –

+3

@VahidNaderi .Net CoreはX-Platです.Linux/MACでWindowsサービスがどのように動作するかはわかりません。 – DaveShaw

答えて

0

これはおそらく最も良い解決策ではありませんが、これまで私が使っていたトリックです。新しいWindowsフォームアプリケーションを起動し、Program.csファイルからフォームへの参照を削除すると、タスクバーまたはデスクトップに何も表示されずに、バックグラウンドでアプリケーションが実行されます。しかし、それはタスクマネージャに表示されます。

私は友人にいたずらをするためにこのトリックを使ってアプリを書きました。バックグラウンドで実行され、ランダムな間隔でシステムビープ音を鳴らします。繰り返しますが、おそらく最も洗練されたソリューションではなく、それを実行する方法の1つです。

+0

Winformアプリケーションの場合は、単にthis.Hide()を実行するだけで、フォームは表示されません。 OPはコンソールを隠そうとしています。 –

+2

私はWinFormsがまだdotnetコアでサポートされているとは思わない – OzieGamma

0

.xprojファイルを編集しようとしましたが、VS/dotnetでは無視されているようです。 dotnetはウェブサイトやコンソールアプリケーションを念頭に置いて開発されたため、現在サポートされているとは思われません。マイクロソフトは最近、彼らが良い古いMSBuildに戻ってくることを決めた。 (https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/

だから、私はあなたの最良の賭けはそれまで待つことだと思います。

12

現在のところ、Windows起動時にWindowsが評価する「コンソール」または「GUI」アプリケーションであるかどうかを示すフラグがWindows EXEファイルに含まれているため、そのまま使用可能です。は直接入力できません。ただし、このフラグはeditbin.exe(VS 'C++ビルドツールafaikに付属)を使用して変更できます。

この上に構築、あなたはので、あなたのプロジェクトの出力は、実際の.exeファイルが含まれて自己完結型の.NET Coreアプリケーション(project.jsonから"type": "platform"を削除し、ランタイムのセクションを追加)を作成し、起動するビルド後のスクリプトを追加することができますeditbin.exe /subsystem:windows yourapp.exe

+0

あなたは天才です、それは働いた! – docesam

+0

editbin.exeのSUBSYSTEMオプションの詳細は、次のURLにあります。https://docs.microsoft.com/en-us/cpp/build/reference/subsystem editbin.exeとlink.exeをフォルダにコピーしました私の解決の下で。 VS2017では、プロジェクトのポストビルドイベントで次のように使用しました。 $(SolutionDir)ビルド\ bin \ editbin.exe "-SUBSYSTEM:WINDOWS" $(SolutionDir)Project1 \ bin \ Debug \ netcoreapp1.1 \ win10-x64 \ Project1.exe " 誰かがこれを持っていたかどうかわかりませんが、マクロをたくさん使うことができませんでした。おそらく、私がcsprojをビルドするために調整する必要があったからです。 exe)。 –

1

あなたは、私のような、にしたい場合は

  • WebHostServiceを
  • は気にしないIISたくない、内部ネットワーク上のaspnet core mvcアプリ

    • を展開Linux/Mac
    • ユーザーからKestrelコンソールを非表示にしたい

    そして、あなたはどのようなWindowsサービスを使用することについてどのようにhost an aspnet core in a Windows Service

  • 関連する問題