私のプロジェクトでは、同じ署名を持つ3つ以上のMainメソッドがあります。 1つはwinFormで、もう1つはコンソールクラスです。
それらのいずれかをエントリポイントとして設定する方法。
エントリポイントを設定する1つのメインメソッドの前に[STAThread]
を宣言しましたが、機能していませんか?
Visual Studio Express2010を使用しています
ソリューションエクスプローラーでプロジェクトを右クリックしてプロジェクトのプロパティに移動し、[プロパティ]をクリックします。最初のタブに、エントリポイントのドロップダウンリストが表示されます。適切なメインメソッドを選択します。
STAThread
はエントリポイントを設定しません-メインを実行するスレッドにシングルスレッドアパートメントを使用するようにランタイムに強制します。
Joshが言うように、プロジェクトのプロパティでスタートアップオブジェクトを設定する必要があります。それがVSExpressに表示されない場合は、高度なビルドプロパティを表示するように強制する必要があります。[ツール]\[オプション]を開き、[プロジェクトとソリューション]の[高度なビルド構成を表示する]をオンにします。
アプリケーションどちらかはコンソールアプリである必要があることに注意してくださいまたは WinFormsアプリ。 1つとしてのみ構築できます(とにかく、構成ごとに)。 WinFormsアプリとして起動するとコンソールが表示されるか、コンソールアプリとして起動するとコンソールが表示されなくなります。
ロジックの大部分をクラスライブラリに配置し、2つのラッパーアプリケーション(1つはWinForms、もう1つはコンソール)を作成して、関連するUIを表示し、クラスライブラリに委任することを検討しましたか?
プログラムに2つのメインメソッドコンパイラがある場合は混乱するので、c#program put main classgiveを実行します
public Class one
{
public static void main()
{
System.console.writeline("One");
}
public Class two
{
public static void main()
{
System.console.writeline("Two");
}
}
コンソールでC#を実行する
CSC Multimain.cs/main:one
CSC Multimain.cs/main:two
宣言するすべてのクラスにMainメソッドを配置できます。一部のプログラマーはこれを利用して、宣言する各クラスに小さなテストアプリを構築します。
ただし、プロジェクトのクラス間で複数のMainメソッドを宣言する場合は、IDEにどのクラスになりたいかを指定する必要があります。アプリのエントリポイント。これを行うには:
1つのプログラムに複数のメインメソッドを配置できますが、一度に1つのメインメソッドを持つプログラムがコンパイルされます。たとえば、このコードをコピーしてエディターに貼り付け、名前を変更します。最初の行でリリースして変更を確認します。
#define Release
using System;
class Program
{
#if Release==true
public static void Main(string[] args) //for enemy
{
Console.WriteLine("go to hell");
Console.ReadLine();
}
#Elif Release==false
static void Main(string[] args) //for friend
{
Console.WriteLine("hello ");
Console.ReadLine();
}
#endif
}
この方法でもできますが、どのメインメソッドがエントリポイントになるかを設定する方法がわかりません
public static void Main(string args)
{
Console.WriteLine("this is second main method");
}
public static void Main(string[] args)
{
Program.Main("second main method");
}
この問題は、ここの手順で簡単に解決できます。1。ソリューションを開きます。22つのクラスを別々のクラスファイルに分割します。3。メインメニューバーから[プロジェクト]タブをクリックします。4。カーソルをプロパティに移動します。5。目的のクラスを選択します。 「参照パス」に対して実行したい名前6.プロジェクトをコンパイルすると、エラーは解消されます。