web-dev-qa-db-ja.com

「プログラムに静的な「メイン」メソッドが含まれていない」というトラブルシューティングが明らかに...

私の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());
        }
    }
}

...そしてそこにいくつかのコメントがあります。他のエラーはありません。

助けて?

47
adeena

ファイルのプロパティはコンパイルに設定されていますか?

49
Quibblesome

私のclass libraryプロジェクトwas set acceddentalyコンソールアプリケーションにする

クラスライブラリプロジェクトが出力タイプのクラスライブラリであることを確認してください

enter image description here

26

Ke、私もこの問題を見ていました。そして私の場合、解決策は簡単すぎました。ソリューションに新しい空のプロジェクトを追加しました。新しく追加されたプロジェクトは、コンソールアプリケーションとして自動的に設定されます。ただし、追加されたプロジェクトは「空の」プロジェクトであったため、その新しいプロジェクトにはProgram.csは存在しませんでした。 (予想通り)

プロジェクトプロパティの出力タイプをクラスライブラリに変更するだけでした。

20
Freek Bos

WPFまたはSilverlightアプリケーションを使用している場合、App.xamlがファイルプロパティのBuildActionとして「ApplicationDefinition」を持っていることを確認してください。

12
MrOnigiri

プロジェクトのプロパティを確認します。 [アプリケーション]タブで、スタートアップオブジェクトとしてProgramクラスを選択します。

alt text

5
Igal Tabachnik

それは変です。プログラムは正常にコンパイルおよび実行され、「発行」でのみ失敗しますか、それともすべてのコンパイルで失敗しますか?

また、ファイルのプロパティを変更した可能性があります 'Build ActionCompile以外の何かに?

4
configurator

プログラムクラスのnamespaceの名前を変更したため、同じエラーが発生しました。
プロジェクトの"Startup object""Application"タブのフィールドは、まだ古い名前空間を参照していました。新しいスタートアップオブジェクトを選択することで問題が解決し、そのリストから古いエントリも削除されました。
同じ「アプリケーション」タブの「デフォルト名前空間」フィールドを更新することもできます。

2
Roland Pihlakas

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>
1

このエラーが発生し、このソリューションで解決しました。

--> Right click on the project

--> and select "Properties"

--> then set "Output Type" to "Class Library".
1
Ali Ahmadi

私が見つけたのは、Program.csファイルがソリューションの一部ではなかったことです。既存のアイテムを追加し、ファイル(Program.cs)をソリューションに追加し直しました。

これによりエラーが修正されました。エラー1プログラム '.....にはエントリポイントに適した静的な' Main 'メソッドが含まれていません

1
Rich

Mainメソッドは、Visual Studioで起動オブジェクトとして適切に構成されたクラスに配置することが重要です。

  • プロジェクトエクスプローラーでプロジェクトを右クリックします。 「プロパティ...」を選択します
  • プロパティダイアログで、[アプリケーション]タブを選択します
  • [アプリケーション]タブで、SimpleAIMLEditor.Program起動オブジェクトのドロップダウンから

次に、アプリケーションを再度実行します。エラーは消えます。

1
dasblinkenlight

私の問題は、誤ってメインの引数を設定したことです

static void Main(オブジェクト値

リファクタリングツールに感謝します。数分で把握しましたが、途中で誰かを助けるはずです。

0
satyajit

私の場合(提案された解決策がどれも当てはまらない場合)、問題はasync/awaitmainメソッドのシグネチャは次のように見えます。

static async void Main(string[] args)

単にasyncを削除したので、mainメソッドは次のようになりました。

static void Main(string[] args)

また、awaitのすべてのインスタンスを削除し、.Result非同期呼び出しのため、コンソールアプリケーションは問題なくコンパイルできます。

0