none
[BUG ?] Générer une classe managée RRS feed

  • Question

  • Bonjour a tous

    Je vais donner ma configuration au cas où :

    Windows 7 - 64 Bytes - Français
    8 Go DDR2
    (je pense que le reste n'est pas nécessaire)

    Les manipulations effectuées :

    Création d'un nouveau projet : WindowsApplication1
    Dans le menu affichage "Explorateur de serveurs"

    Dans l'"Explorateur de serveurs" je développe pour trouver "Classe de gestion" puis je recherche  "Poste de travail" ou je fait un clic droite et "générer une classe managée" cela me crée dans Explorateur de solution une "Classe Component" dont le nom est "ROOT.CIMV2.Win32_ComputerSystem.vb" puis apres un build dans la "boite a outils" cela me crée un nouveau composant du nom de "ComputerSystem" que j'ajoute dans le concepteur
    Cela me crée un ComputerSystem1

    J'exécute (F5) el tout et cela me crée une erreur

     

    Une erreur s'est produite lors de la création du formulaire. 
    Pour plus d'informations, consultez Exception.InnerException. L'erreur est :
     Le nom de classe ne correspond pas.
    Apres je n'ai plus ma WinForm dans le concepteur, j'ai a la place ce message

     

    Pour éviter tout risque de perte de données avant le chargement du concepteur, les erreurs suivantes doivent être résolues :

     

    Je suis partie dans le desingner de Form1 et j'ai

    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class Form1
        Inherits System.Windows.Forms.Form
    
        'Form remplace la méthode Dispose pour nettoyer la liste des composants.
        <System.Diagnostics.DebuggerNonUserCode()> _
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
    
        'Requise par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer
    
        'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée à l'aide du Concepteur Windows Form.  
        'Ne la modifiez pas à l'aide de l'éditeur de code.
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()
            Me.ComputerSystem1 = New WindowsApplication1.ROOT.CIMV2.ComputerSystem
            Me.SuspendLayout()
            '
            'ComputerSystem1
            '
            Me.ComputerSystem1.Path = New System.Management.ManagementPath("")
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(284, 262)
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.ResumeLayout(False)
    
        End Sub
        Friend WithEvents ComputerSystem1 As WindowsApplication1.ROOT.CIMV2.ComputerSystem
    
    End Class
    

    si je commente la ligne

    Me.ComputerSystem1.Path = New System.Management.ManagementPath("")

    tout deviens fonctionne mise a par le ComputerSystem1

    J'ai loupé quelle que chose dans l'utilisation ?

    il me semble l'avoir utilise sous Visual Studio 2003 et ça fonctionnais plustot bien !

     

    A bientot

     

     


    Cordialement, Troxsa
    dimanche 4 avril 2010 18:14
    Auteur de réponse

Réponses

  • Bonjour,

     

    J’ai reproduit votre erreur. Comme je ne trouve aucun bug rapporté pour ce scenario, je vous propose un workaround, pour le moment :

    Apres « générer une classe managée », au lieu de faire un build et d’ajouter les contrôles de toolbox obtenues, ajoutez directement les éléments qui se trouvent sous le nœud « Poste de travail », car c’est la même chose.

     

    J’ai suivi cet exemple :

    http://msdn.microsoft.com/en-us/library/bb429006(WinEmbedded.11).aspx

     

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    • Marqué comme réponse TroxsaEditor mercredi 7 avril 2010 17:06
    mercredi 7 avril 2010 13:40

Toutes les réponses

  • Bonjour,

     

    J’ai reproduit votre erreur. Comme je ne trouve aucun bug rapporté pour ce scenario, je vous propose un workaround, pour le moment :

    Apres « générer une classe managée », au lieu de faire un build et d’ajouter les contrôles de toolbox obtenues, ajoutez directement les éléments qui se trouvent sous le nœud « Poste de travail », car c’est la même chose.

     

    J’ai suivi cet exemple :

    http://msdn.microsoft.com/en-us/library/bb429006(WinEmbedded.11).aspx

     

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    • Marqué comme réponse TroxsaEditor mercredi 7 avril 2010 17:06
    mercredi 7 avril 2010 13:40
  • Bonjour Alex

    Effectivement vous avez raison, en prenant ce qui ce trouve en dessous du noeud "Poste de travail" cela fonctionne sans problème

    La solution de contournement pour ce que j'ai décris il suffit de mettre dans le load form

    Me
    .ComputerSystem1.Path = New
     System.Management.ManagementPath("\\ComputerName\root\CIMV2:Win32_ComputerSystem.Name=""ComputerName"""
    )

    et ça fonctionne, mais cela reste étrange !

     

    A bientot


    Cordialement, Troxsa
    mercredi 7 avril 2010 17:11
    Auteur de réponse