66 votes

Dépannage "le programme ne contient pas de méthode statique 'Main'" alors qu'il en contient clairement...?

Mon programme MS Visual C# se compilait et s'exécutait très bien. J'ai fermé MS Visual C# pour faire d'autres choses dans la vie.

Je le rouvre et (avant de faire autre chose) je vais "Publier" mon programme et je reçois le message d'erreur suivant:

Le programme C:\monprogramme.exe ne contient pas une méthode statique 'Main' appropriée pour un point d'entrée

Hein? Oui, il en a une... et tout fonctionnait 15 min plus tôt. Bien sûr, je peux croire que j'ai accidentellement tapé quelque chose ou fait quelque chose avant de le fermer... mais quoi? Comment puis-je diagnostiquer cela?

Mon fichier Program.cs ressemble à ceci:

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

...et il y a quelques commentaires là-dedans. Il n'y a pas d'autres erreurs.

Aide?

62voto

Quibblesome Points 14441

Les propriétés du fichier sont-elles définies sur Compiler ?

3 votes

C'était ça... J'étais en train de regarder "build Actions" avant de le fermer et j'ai dû accidentellement appuyer sur une touche pour définir le Program.cs à ne pas compiler. Merci!

1 votes

Comment puis-je vérifier cela? J'ai le même problème ici... PS: Utilisation de vs2012

3 votes

Sélectionnez le fichier dans l'arborescence du projet et ouvrez la fenêtre des propriétés. La valeur supérieure devrait être la bonne.

24voto

Freek Bos Points 31

D'accord, j'ai également examiné ce problème. Et dans mon cas, la solution était trop facile. J'ai ajouté un nouveau projet vide à la solution. Le projet nouvellement ajouté est automatiquement défini comme une application console. Mais comme le projet ajouté était un projet 'vide', aucun fichier Program.cs n'existait dans ce nouveau projet. (Comme prévu)

Tout ce que j'avais à faire était de changer le type de sortie des propriétés du projet en Bibliothèque de classes

3 votes

Merci! C'était mon problème :)

17voto

MrOnigiri Points 61

Si vous avez une application WPF ou Silverlight, assurez-vous que App.xaml a "ApplicationDefinition" comme BuildAction dans les propriétés du fichier.

6voto

Igal Tabachnik Points 15160

Vérifiez les propriétés de votre projet. Dans l'onglet "Application", sélectionnez votre classe Program comme objet de démarrage :

texte alternatif

3 votes

Il suffit de le définir lorsque deux méthodes Main statiques existent.

8 votes

Que se passe-t-il si ce menu déroulant est vide ?

0 votes

Par mégarde, j'ai modifié les propriétés de ma classe et cela a supprimé cette propriété, même après avoir retapé comme avant... Problème résolu, merci :)

3voto

configurator Points 15594

C'est bizarre. Votre programme compile-t-il et s'exécute-t-il avec succès et ne se plante-t-il qu'à la publication, ou échoue-t-il à chaque compilation maintenant?

Avez-vous peut-être changé l'Action de génération du fichier pour quelque chose d'autre que Compile?

1 votes

Oui - cela échouait à chaque compilation et oui - j'ai accidentellement changé mon action de build sur Program.cs en "none" :)

2 votes

Comment peut un utilisateur avec plus de 20 000 points de réputation poster un "commentaire" en tant que réponse, et obtenir toujours des votes positifs? Est-ce que cela répond en fait d'une manière ou d'une autre à la question et est-ce que je viens de ne pas le remarquer?

0 votes

Ne vous inquiétez pas, nous sommes en 2008 (Je pensais que c'était récent car c'était dans la file LQ, désolé).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X