none
VS 2010 : A first chance exception... RRS feed

  • Question

  • Bonjour,

    Depuis que je suis passé à VS 2010, mon appli WinForm .NET 2.0 démarre avec, parmi les messages de la fenêtre "Ouput", le message suivant :

    A first chance exception of type 'System.Deployment.Application.DeploymentException' occurred in System.Deployment.dll

    A first chance exception of type 'System.Deployment.Application.InvalidDeploymentException' occurred in System.Deployment.dll


    Le message VS qui précède juste ceux-ci est le suivant :
    'MyApp.vshost.exe' (Managed (v2.0.50727)): 'C:\Windows\assembly\GAC_MSIL\System.Deployment.resources\2.0.0.0_fr_b03f5f7f11d50a3a\System.Deployment.resources.dll'

    Et cela, en mode Debug comme en mode Release. De quoi s'agit-il ? Les ressources ne seraient plus conformes ?

    Merci


    Alain
    mardi 18 mai 2010 10:17

Réponses

  • Bonjour,

    J'ai une explication à votre problème que j'ai entièrement validé ! (j'ai passé un temps fou rien que pour vous !!!!) 

    1/Ceci n'est pas un bogue, mais le comportement normal du .NET Framework (3.5 et 4.0) : Le .NET Framework regorge plein d'exception qui sont traitées dans les blocs try/catch.

    2/Votre problème apparait dans la version 2010 car l'option : "Activer Uniquement mon code" est certainement décochée dans les options "Général" du "Débogage". Si vous activez cette option, vous ne verrez plus ces messages d'erreurs. Apparement, cette option était sans doute activée lorsque vous utilisiez Visual Studio 2008, et donc vous n'avez certainement pas vue cette exception se déclencher... (Croyez moi, j'ai installé une VM avec VS 2008 + .NET 3.5 rien que pour vous afin de "reproduire" votre problème...).

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse AchLog jeudi 20 mai 2010 22:16
    jeudi 20 mai 2010 19:54
    Modérateur

Toutes les réponses

  • Bonjour,

    Ces messages sont provoqués suite à une exception qui a été déclenchée et traitée sans problème par un try/catch. C'est juste des messages informatifs...

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    mardi 18 mai 2010 16:54
    Modérateur
  • Oui bien sûr Gilles, mais ils révèlent une situation anormale (qui certes a été contournée) mais qui n'existait pas lors du développement sous VS 2008. J'ai besoin de savoir ce qui se passe. Peut-on le savoir ?

    Je remarque aussi une "grande lenteur" dans mon application, au démarrage, lors du chargement d'une image, ce que je n'avais jamais constaté sous VS 2008 et 2005. VS 2010 est assurément moins performant que ses prédécesseurs, sur certains points. Il doit encore s'améliorer !

    Cordialement

     


    Alain
    mardi 18 mai 2010 21:01
  • Es-ce que dans VS2010 vos projet pointe (target) le framework 2.0? Es-ce que vous avez des références brisées?
    Microsoft MVP C# || gabrielmongeon.com
    mercredi 19 mai 2010 02:39
    Modérateur
  • Bonjour,

    Oui bien sûr Gilles, mais ils révèlent une situation anormale (qui certes a été contournée) mais qui n'existait pas lors du développement sous VS 2008. J'ai besoin de savoir ce qui se passe. Peut-on le savoir ?
    Oui, dans le menu "Debug / Exceptions..." dans la ligne "Common Language Runtime Exceptions" cochez la case "Thrown".

    Ainsi, lorsque qu'une exception est déclenchée (traitée ou non), le débogueur s'arrête automatiquement et vous pouvez voir ce qui se passe...

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Proposé comme réponse Alex Petrescu mercredi 19 mai 2010 11:51
    mercredi 19 mai 2010 06:46
    Modérateur
  • Pour répondre à Biche d'abord : Oui, le projet cible bien .NET 2.0 et je n'ai pas de référence brisée (en tout cas pas de trace).

    J'ai suivi les indication de Gilles et je vois le problème. Il s'agit d'une instruction exécutée dans le Splach screen de l'appli : If ApplicationDeployment.IsNetworkDeployed

    Le message indique : Les métadonnées de stockage "CurrentBind" ne sont pas valides.

    puis un second message indique : Application non installée.

    En mode Debug ,bien sûr.

    Et là je suis sec...

    Mais vous allez me dire ce qu'il faut faire, n'est-ce pas ? Bien entendu j'ai déjà recompilé toute l'appli plusieurs fois.

    Merci

     


    Alain
    mercredi 19 mai 2010 18:15
  • Bonjour,

     

    L’erreur est lancée lorsque vous exécutez la vérification d’ApplicationDeployment.IsNetworkDeployed ? Ou dans une instruction à l’intérieur d’If ?

     

    Cordialement,

    Alex

    __________________________________________________________________________________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

     

     

    jeudi 20 mai 2010 11:00
  • Bonjour,

    L'exception arrive sur le If. Voici le code concerné :

        Dim str As String
    
        If ApplicationDeployment.IsNetworkDeployed Then
          str = "Déploiement réseau"
          Dim deployment As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
          If deployment.IsFirstRun Then
            str += vbCrLf + "First run"
            InstalleRaccourcisClickOnce()    ' Ajouter les raccourcis ClickOnce
          Else
            str += vbCrLf + "Non First run"
          End If
        Else
          str = "Hors déploiement réseau"
        End If
    

    
    

     

    Merci

     


    Alain
    jeudi 20 mai 2010 12:32
  • Bonjour,

     

    Essayez de tester la même chose dans une version ultérieure de .NET. Il pourrait être un bug réparé dans les versions ultérieures.

     

    Cordialement,

    Alex

    __________________________________________________________________________________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

     

     

    jeudi 20 mai 2010 12:56
  • Je viens d'essayer en 3.5 et 4.0 : pareil !

    Pour faire cela j'ai simplement changé le framework cible dans les options de compilation. J'espère que c'est la bonne mapi.

    Je reprécise que cela fonctionnait bien avec VS 2008. Donc le bug ne peut pas venir du Framework ?

    Cordialement

    Alain


    Alain
    jeudi 20 mai 2010 14:06
  • Bonjour,

    J'ai une explication à votre problème que j'ai entièrement validé ! (j'ai passé un temps fou rien que pour vous !!!!) 

    1/Ceci n'est pas un bogue, mais le comportement normal du .NET Framework (3.5 et 4.0) : Le .NET Framework regorge plein d'exception qui sont traitées dans les blocs try/catch.

    2/Votre problème apparait dans la version 2010 car l'option : "Activer Uniquement mon code" est certainement décochée dans les options "Général" du "Débogage". Si vous activez cette option, vous ne verrez plus ces messages d'erreurs. Apparement, cette option était sans doute activée lorsque vous utilisiez Visual Studio 2008, et donc vous n'avez certainement pas vue cette exception se déclencher... (Croyez moi, j'ai installé une VM avec VS 2008 + .NET 3.5 rien que pour vous afin de "reproduire" votre problème...).

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse AchLog jeudi 20 mai 2010 22:16
    jeudi 20 mai 2010 19:54
    Modérateur
  • Gilles,

    Je suis vraiment désolé que vous ayez dû passer autant de temps sur ce problème. Mais ce temps est finalement gagnant pour tous car vous avez trouvé la bonne explication. Une fois la case cochée, tout rentre dans l'ordre. Le problème disparait.

    Je n'avais, quant à moi, et de mémoire, jamais modifié ces paramètres du Debug, pas plus dans VS2010 que dans VS2008. C'est donc un paramétrage par défaut différent qui est à l'origine d'un comportement différent.

    Surement votre travail sera utile aussi à d'autres, car il n'y a pas de raison que je sois le seul à avoir vu cela.

    Merci de votre grand professionnalisme.

    Bien cordialement

    Alain


    Alain
    jeudi 20 mai 2010 22:27