質問: タイトルの件、exe形式のWindows Formであれば、Process.startで別プロセスで 起動できると思いますが、DLL内の特定Formクラスを別プロセスで起動する 方法はありますでしょうか? ランチャ(exe)を別途用意して、Process.start(ランチャ.exe)を 実行し、ランチャ内でDLL内の特定のFormをリフレクションで作成して 起動する方法は、問題ないことを確認しておりますが、 ランチャを経由せずに起動する方法を探しております。 このあたり、ご存知の方がおりましたら ご教示頂きたく、よろしくお願いいたします。
回答: kunifさんも言及されていますが、ランチャー画面に表示を行わないFormにリンクを行うのは無駄ですのでお勧めできません。 とはいえ、質問に対してはお勧めのアプローチがあるので紹介します。 C#プロジェクトは次の3種類があります。 * Console Application コンソール(コマンドプロンプトの黒あれ)を表示する.EXE * Windows Application コンソールを表示しない.EXE * Class Library コンソールを表示しない.DLL ネイティブの.EXE / .DLLと異なり.NETの.EXE / .DLLでは上記の差しかありません。つまり、.EXE形式であってもリンク(参照)することができます。(ネイティブではリンクを行うためには.DLLの必要があります。) ですので、独立したプロセスとして起動したいFormはClass Library(.DLL)でなくWindows Application(.EXE)としてMainメソッドも用意しておき、ランチャープログラムからはこの.EXEを参照するとよいでしょう。