私のMS Visual C#プログラムは、コンパイルして正常に動作していました。 MS Visual C#を閉じて、他のことをします。
私はそれを再び開き、(他のことを行う前に)プログラムを「発行」して、次のエラーメッセージを取得します:
プログラムC:\ myprogram.exeには、エントリポイントに適した静的な 'Main'メソッドが含まれていません
え?はい、そうです...そしてそれはすべて15分前に働いていました。確かに、私はそれを閉じる前に私が誤って何かを打ったか何かをしたと信じることができます...しかし何ですか?これをトラブルシューティングするにはどうすればよいですか?
私のProgram.csファイルは次のようになります。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
namespace SimpleAIMLEditor
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainSAEForm());
}
}
}
...そしてそこにいくつかのコメントがあります。他のエラーはありません。
助けて?
ファイルのプロパティはコンパイルに設定されていますか?
Ke、私もこの問題を見ていました。そして私の場合、解決策は簡単すぎました。ソリューションに新しい空のプロジェクトを追加しました。新しく追加されたプロジェクトは、コンソールアプリケーションとして自動的に設定されます。ただし、追加されたプロジェクトは「空の」プロジェクトであったため、その新しいプロジェクトにはProgram.csは存在しませんでした。 (予想通り)
プロジェクトプロパティの出力タイプをクラスライブラリに変更するだけでした。
WPFまたはSilverlightアプリケーションを使用している場合、App.xamlがファイルプロパティのBuildActionとして「ApplicationDefinition」を持っていることを確認してください。
それは変です。プログラムは正常にコンパイルおよび実行され、「発行」でのみ失敗しますか、それともすべてのコンパイルで失敗しますか?
また、ファイルのプロパティを変更した可能性があります 'Build Action
Compile
以外の何かに?
プログラムクラスのnamespaceの名前を変更したため、同じエラーが発生しました。
プロジェクトの"Startup object""Application"タブのフィールドは、まだ古い名前空間を参照していました。新しいスタートアップオブジェクトを選択することで問題が解決し、そのリストから古いエントリも削除されました。
同じ「アプリケーション」タブの「デフォルト名前空間」フィールドを更新することもできます。
C#の最新バージョン(これを書いている時点ではC#7.3)を使用していなかったため、以下のinternal
アクセス修飾子をpublic
に変更する必要があったため、この問題が発生しました。
internal class Program
{
public static void Main(string[] args)
{
//My Code
}
}
または.csproj
C#の最新バージョンを使用する(これにより、上記のクラスをinternal
として保持できます):
<PropertyGroup>
<LangVersion>latest</LangVersion>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
このエラーが発生し、このソリューションで解決しました。
--> Right click on the project
--> and select "Properties"
--> then set "Output Type" to "Class Library".
私が見つけたのは、Program.csファイルがソリューションの一部ではなかったことです。既存のアイテムを追加し、ファイル(Program.cs)をソリューションに追加し直しました。
これによりエラーが修正されました。エラー1プログラム '.....にはエントリポイントに適した静的な' Main 'メソッドが含まれていません
Main
メソッドは、Visual Studioで起動オブジェクトとして適切に構成されたクラスに配置することが重要です。
SimpleAIMLEditor.Program
起動オブジェクトのドロップダウンから次に、アプリケーションを再度実行します。エラーは消えます。
私の問題は、誤ってメインの引数を設定したことです
static void Main(オブジェクト値)
リファクタリングツールに感謝します。数分で把握しましたが、途中で誰かを助けるはずです。
私の場合(提案された解決策がどれも当てはまらない場合)、問題はasync/await
main
メソッドのシグネチャは次のように見えます。
static async void Main(string[] args)
単にasync
を削除したので、main
メソッドは次のようになりました。
static void Main(string[] args)
また、await
のすべてのインスタンスを削除し、.Result
非同期呼び出しのため、コンソールアプリケーションは問題なくコンパイルできます。