c# - Le débogage ne démarre pas





visual-studio-2010 debugging build .net-2.0 (25)


Cette solution a déjà été mentionnée mais il a fallu un peu de bricolage pour la faire fonctionner, alors voici une solution claire

Dans le menu / l'onglet Projet, cliquez sur Propriétés. (ou sur votre explorateur de solution) Cliquez sur l'onglet Déboguer. Désactivez la case à cocher Activer le processus d'hébergement Visual Studio. (Décochez-la) vérifiez si cela fonctionne. s'il ne redémarre pas votre ordinateur (certains fichiers de projets s'exécutent en arrière-plan si vous savez comment les arrêter, redémarrer n'est pas nécessaire, il suffit de terminer leurs tâches) reconstruire le projet

Cela devrait résoudre le problème

Quand je tape F5 (mode de débogage) rien ne se passe. La construction fonctionne correctement, le fichier exe que je peux lancer correctement, mais ne peut pas démarrer le débogage. Pourquoi?




J'ai trouvé une solution:

  1. Fermez votre solution Visual Studio
  2. Ouvrez votre en-tête de projet .csproj avec notepad ++ par exemple.
  3. Rechercher Tag dans la section
  4. Supprimer complètement l'étiquette de configuration
  5. Ouvrez votre solution et pour moi déboguer maintenant fonctionne sur mon projet



Vérifiez le gestionnaire de configuration, assurez-vous que tous les projets sont compilés pour la même plate-forme.




J'ai trouvé une solution:

  1. Fermez votre solution Visual Studio
  2. Ouvrez votre en-tête de projet .csproj avec notepad ++ par exemple.
  3. Rechercher <UseIISExpress>false</UseIISExpress> dans la section <PropertyGroup>
  4. Remplacez la valeur par true: <UseIISExpress>true</UseIISExpress>
  5. sauvegarder
  6. Ouvrez votre solution et pour moi déboguer maintenant fonctionne sur mon projet



J'ai fait face à ce problème. Dans mon cas, en quelque sorte l'entrée du projet de démarrage a été effacée. Donc, assurez-vous qu'au moins un des projets dans votre explorateur de solution est défini comme projet de démarrage. Pour configurer un projet de démarrage, faites un clic droit sur le projet souhaité dans l'explorateur de solution -> cliquez sur " Définir comme projet de démarrage "




Si vous travaillez avec un package SSIS ou une solution avec plus d'une application à l'intérieur. Assurez-vous que l'ensemble d'applications correct est défini comme votre «projet de démarrage».

Si vous avez une application distincte ou un projet SSIS dans le même dossier, votre Visual Studio est probablement en train de créer à la place de ce que vous voulez exécuter.

J'espère que cela t'aides!




Solution rapide qui pourrait aider quelqu'un:

J'utilise VS2013 et mon débogueur a soudainement cessé de fonctionner. J'ai continué à obtenir un message indiquant que le débogage n'est pas supporté.

Je l'ai finalement corrigé en désactivant la case NATIVE sous Débogueurs dans l'onglet Pages de propriétés -> Options de démarrage du projet de démarrage. J'ai maintenant seulement ASP.NET sélectionné sous débogueurs.




Désolé de soulever une vieille question mais j'ai eu le même problème aujourd'hui, mais la raison était en fait à cause de l'ordre de construction de la solution. Si vous allez dans les Solution Property Pages la Solution Property Pages -> Common Properties -> Startup Project .
Le fait d'assurer Multiple startup projects est sélectionné, déplacez le projet Web en haut de la liste.

Dans ma solution d'application web, j'ai 2 projets web et 5 projets de code, un de mes projets de code était en haut, et en tant que tel le débogage ne commencerait pas.

J'espère que d'autres trouvent cela utile




Pouah! Je ressentais exactement les mêmes symptômes que vous et, après avoir essayé toutes les suggestions, la seule qui fonctionnait était la vôtre: créer un nouveau projet et copier tout le contenu.

Puis j'ai remarqué que je ne pouvais pas supprimer manuellement mon répertoire Bin, et j'ai réalisé que MyApp.vshost.exe fonctionnait en arrière-plan tout ce temps, empêchant d'être écrasé par Visual Studio 2012. Je ne sais pas comment ça fonctionnait encore VS2010 cependant: /

En résumé, la solution qui a fonctionné pour moi: Tuer le processus, essayez à nouveau.

En d'autres termes, avez-vous essayé de l'éteindre et de le rallumer?




J'ai eu le même problème et en regardant la réponse de Bresleveloper, j'ai trouvé le problème suivant qui a semblé fonctionner pour moi. En publiant ceci dans le cas où quelqu'un d'autre a le même problème, alors ils peuvent vérifier cela aussi.

Je suis allé à l'onglet Déboguer <Propriétés du projet. Trouvé que les options de débogage ont été totalement désactivées. Cochez la case "Activer le débogage". Cela a fait si pour moi ..




J'ai eu le même problème avec mon application de bureau et comme ce forum dit que vous devriez marquer votre projet comme un projet de démarrage, puisque le studio visuel n'a pas marqué.

Cela a très bien fonctionné pour moi et je crois que cela aidera d'autres personnes qui pourraient avoir ce problème.




J'ai eu le même problème et tous les trucs ne l'ont pas fait jusqu'à ce que je décoche le "Activer le processus d'hébergement Visual Studio" sous l'onglet de débogage dans les propriétés du projet




Vérifiez que dans votre projet -> Propriétés -> onglet Déboguer -> Commencer les sections Action qui "Ne pas lancer, mais déboguer mon code quand il démarre" n'est pas cochée. D'une manière ou d'une autre, cela a été vérifié plusieurs mois après ma création et j'avais travaillé sur mon projet.

Décocher cela résolu mon problème.




En ce qui concerne le problème ci-dessus où la console n'apparaît pas. (Je n'ai pas assez de points de mérite pour commenter directement sur ce post.)

J'ai désactivé le processus d'hébergement afin de contourner le problème de son fonctionnement et de laisser les fichiers verrouillés. Quand je l'ai fait, j'ai trouvé ma fenêtre de la console n'est plus apparue lorsque j'ai frappé F5 pour déboguer, même si mon programme s'est bien passé. J'ai alors remarqué que j'avais la case à cocher "Préférer 32 bits" cochée. Je l'ai décollé, reconstruit et la fenêtre de la console est apparue une fois de plus. Cela semblait étrange, je l'ai encore cochée et j'ai confirmé que je pouvais reproduire ce comportement. J'utilise Visual Studio 2013.




Redémarrez VS et essayez de déboguer. Quelque temps cela arrive, même moi aussi j'ai eu le même problème.




J'ai eu ce problème dans une application WPF sur laquelle je travaillais. Lors de l'exécution du débogueur, un processus nommé MyApp.VsHost.exe démarrait et continuait à s'exécuter en arrière-plan, mais aucune exception ne s'affichait et rien dans la fenêtre de sortie, à l'exception des informations de génération.

C'était parce que j'avais changé l'espace de noms de ma classe App mais que je n'avais pas mis à jour l'attribut Class dans App.xaml pour correspondre au nouvel espace de noms. J'ai changé l'espace de noms dans le fichier xaml et cela a fonctionné à nouveau.




Pour la nouvelle application ASP.Net Core 1

Sous la console de gestion de paquets, j'ai couru

dnvm upgrade
dnvm restore

et ma solution pourrait compiler.




Ce qui fonctionnait pour moi était de supprimer complètement le dossier de la solution (a dû redémarrer Windows pour être autorisé à le faire), puis de le récupérer à partir du contrôle de la source. Cela semble drastique - mais cela ne prend pas vraiment très longtemps.




Mon expérience avec Visual Studio 2015, j'ai essayé de supprimer tous les processus et le redémarrer n'a pas fonctionné. J'ai essayé de supprimer le répertoire bin, cela n'a pas fonctionné.

Malheureusement, la seule chose qui fonctionnait était de fermer et de redémarrer Visual Studio 2015 en mode Admin. Soupir...




J'ai une solution très amusante, mais ça a marché pour moi,

Maintenez la touche F5 jusqu'à ce que vous voyez que le débogage a commencé, je suis sérieux.




J'avais le même problème (apparemment plusieurs années plus tard) où je pouvais voir mon appareil dans VS 2015, mais quand je voulais déboguer sur l'appareil, rien ne se passait.

Cela peut être une question différente de celle de l'affiche originale, mais cette solution m'a permis de résoudre le problème dans VS 2015.

Cliquez avec le bouton droit sur la solution et sélectionnez Propriétés, puis notez si la case à cocher de votre solution dans la colonne Deploy est cochée, si ce n'est pas le cas, vérifiez-la et essayez à nouveau de déboguer. A travaillé pour moi.




Avant de passer à travers une solution intense ... essayez ceci !!!

  1. Démarrez simplement le fichier .exe dans votre dossier de débogage. "Ne le ferme pas!"

  2. Démarrez le débogueur dans Visual Studio. (i) Une erreur devrait apparaître ... dites simplement "non"

  3. Fermez le fichier ".exe" que vous avez démarré à l'étape "1".

  4. Réessayer.

Pour une raison quelconque, Visual Studio était coincé sur cette application que je construisais mais cela a fonctionné pour moi.




Même erreur, essayé d'exécuter VS en tant qu'administrateur et cela a fonctionné.




Aller à l'Explorateur de solutions, cliquez-droit sur votre projet allez dans les propriétés, cliquez sur Déboguer, en bas, il y a une case à cocher, cliquez sur la case à cocher pour activer le débogage SQL Server.




Manipuler un long travail

Depuis .NET 4.5 et C # 5.0, vous devez utiliser TAP (Asynchronous Pattern) basé sur les tâches avec les mots-clés async - await dans toutes les zones (y compris l'interface graphique):

TAP est le modèle de conception asynchrone recommandé pour les nouveaux développements

à la place du modèle de programmation asynchrone (APM) et du modèle asynchrone événementiel (EAP) (ce dernier inclut la classe BackgroundWorker ).

Ensuite, la solution recommandée pour un nouveau développement est:

  1. Implémentation asynchrone d'un gestionnaire d'événements (Oui, c'est tout):

    private async void Button_Clicked(object sender, EventArgs e)
    {
        var progress = new Progress<string>(s => label.Text = s);
        await Task.Factory.StartNew(() => SecondThreadConcern.LongWork(progress),
                                    TaskCreationOptions.LongRunning);
        label.Text = "completed";
    }
    
  2. Implémentation du deuxième thread qui notifie le thread UI:

    class SecondThreadConcern
    {
        public static void LongWork(IProgress<string> progress)
        {
            // Perform a long running work...
            for (var i = 0; i < 10; i++)
            {
                Task.Delay(500).Wait();
                progress.Report(i.ToString());
            }
        }
    }
    

Notez ce qui suit:

  1. Un code court et propre écrit de manière séquentielle sans callback ni thread explicite.
  2. Task au lieu de Thread .
  3. mot-clé async , qui permet d'utiliser l' await ce qui empêche le gestionnaire d'événements d'atteindre l'état d'achèvement jusqu'à la fin de la tâche et ne bloque pas le thread de l'interface utilisateur.
  4. Classe de progression (voir l' interface IProgress ) qui prend en charge le principe de conception de séparation des problèmes (SoC) et ne nécessite pas de répartiteur et d'invocation explicites. Il utilise le SynchronizationContext actuel à partir de son lieu de création (ici le thread UI).
  5. TaskCreationOptions.LongRunning qui indique de ne pas mettre en file d'attente la tâche dans ThreadPool .

Pour des exemples plus détaillés, voir: L'avenir de C #: Les bonnes choses viennent à ceux qui «attendent» de Joseph Albahari .

Voir aussi à propos du concept de modèle de filetage UI .

Gestion des exceptions

L'extrait ci-dessous est un exemple de la façon de gérer les exceptions et de basculer la propriété Enabled du bouton pour empêcher plusieurs clics lors de l'exécution en arrière-plan.

private async void Button_Click(object sender, EventArgs e)
{
    button.Enabled = false;

    try
    {
        var progress = new Progress<string>(s => button.Text = s);
        await Task.Run(() => SecondThreadConcern.FailingWork(progress));
        button.Text = "Completed";
    }
    catch(Exception exception)
    {
        button.Text = "Failed: " + exception.Message;
    }

    button.Enabled = true;
}

class SecondThreadConcern
{
    public static void FailingWork(IProgress<string> progress)
    {
        progress.Report("I will fail in...");
        Task.Delay(500).Wait();

        for (var i = 0; i < 3; i++)
        {
            progress.Report((3 - i).ToString());
            Task.Delay(500).Wait();
        }

        throw new Exception("Oops...");
    }
}




c# visual-studio-2010 debugging build .net-2.0