0

プロジェクトOutput Typeの がWindows Application. タイプが の場合は、Class Library無視してください。

これを行う主な理由は、これを含める/除外することです

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    Form1 form = new Form1();

    Application.Run(form);
}

...そして、フォームを閉じるとアプリケーションが閉じられるように、別のクラスファイルでフォームを閉じるためのロジックもありますが、クラスライブラリの場合はそうではありません。

Main()Windowsアプリケーションの場合はフォームを含めて表示したいだけで、それ以外の場合は表示されません。

4

1 に答える 1

3

これを行うだけでは意味がありません。その Main() メソッドは、アセンブリが EXE プロジェクトとしてビルドされたときにのみ実行されます。それがクラス ライブラリとして構築されている場合、それは、誰も呼び出さず、決してジットされることのない未使用のメソッドにすぎません。したがって、それを排除するためにビルドを複雑にする意味はありません。

とにかく本当にこれをやりたい場合は、条件付きコンパイル シンボルを使用する必要があります。プロジェクト + プロパティ、ビルド タブ、条件付きコンパイル シンボルの設定。そして #if あなたのコードで。

また、クラス ライブラリとしてビルドする必要がないことにも注意してください。EXE プロジェクトとしてビルドされたアセンブリは、クラス ライブラリと同様に機能します。参照を追加するだけです。EXE アセンブリと DLL アセンブリを実際に区別しないことは、.NET の利点です。EXE プロジェクトとクラス ライブラリを持つ通常のソリューションでこれを確認する 1 つの方法は、クラス ライブラリ DLL の名前を EXE に変更することです。また、プログラムは引き続き機能することに注意してください。

于 2013-06-14T11:44:34.870 に答える