IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème compatibilité VS 2008 / W2K


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Problème compatibilité VS 2008 / W2K
    Bonjour,

    Le contexte :

    J'ai hérité d'une application générée à l'origine sous VB.NET 2005 et tournant sous Windows 2000.

    Les sources de cette appli ont été déplacés sur une belle station Vista ayant VS 2008.

    La première fois que j'ai ouvert cette appli sous VS 2008, les sources ont été convertis et les originaux mis dans un répertoire backup.

    Cette appli lit des classeurs Excell, "bidouille" leurs données et ressort un nouveau classeur.

    Pour cela, on utilise Microsoft.Office.Interop.Excel (la dll se trouve dans bin/debug/).

    Les modifs que je dois apporter à cette appli sont : gérer un nouveau point d'entrée dans le menu qui prendra en compte 2 classeurs Excell en entrée pour en sortir un autre.

    Mon développement sous Vista et les tests n'ont pas posé de problème particulier (en dehors de mon manque d'expérience) et la nouvelle version de l'appli tourne sur la machine de développement.

    J'ai donc publié l'appli et commencer à la distribuer à quelques utilisateurs pour qu'ils la valide et là, les problèmes ont commencé :

    Les utilisateurs sont toujours sous W2K.
    L'installation s'est passée sans problème ni message.
    L'appli se lance correctement, mais après avoir saisi le nom des classeurs d'entrée on rencontre l'erreur suivante :
    Consultez la fin de ce message pour plus de détails sur l'appel du débogage
    juste-à-temps (JIT) à la place de cette boîte de dialogue.

    ************** Texte de l'exception **************
    System.Runtime.InteropServices.COMException (0x80020008): Type de variable incorrect. (Exception de HRESULT : 0x80020008 (DISP_E_BADVARTYPE))
    à System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
    à Microsoft.Office.Interop.Excel.Range.get__Default(Object RowIndex, Object ColumnIndex)
    à Appli_PPDS.ExportExcelPSG.TitreDetail(SortedDictionary`2 pSemaine)
    à Appli_PPDS.ExportExcelPSG..ctor(Records_ArticleDonnees mrecords_, String path, SortedDictionary`2 pSemaine)
    à Appli_PPDS.MainDialog_EST.Btn_Gene_Fic_PSG_Click(Object sender, EventArgs e)
    à System.Windows.Forms.Control.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    à System.Windows.Forms.Control.WndProc(Message& m)
    à System.Windows.Forms.ButtonBase.WndProc(Message& m)
    à System.Windows.Forms.Button.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Assemblys chargés **************
    mscorlib
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    Appli_PPDS
    Version de l'assembly*: 1.0.0.0
    Version Win32*: 1.0.0.0
    CodeBase*: file:///C:/Documents%20and%20Settings/NWNogreJo/Local%20Settings/Apps/2.0/OJ20BC26.KXT/GONYRGCN.6K2/appl..tion_db37345aac6ae4cc_0001.0000_877e754de720ec5a/Appli_PPDS.exe
    ----------------------------------------
    Microsoft.VisualBasic
    Version de l'assembly*: 8.0.0.0
    Version Win32*: 8.0.50727.42 (RTM.050727-4200)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Windows.Forms
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Runtime.Remoting
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    mscorlib.resources
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.832 (QFE.050727-8300)
    CodeBase*: file:///C:/WINNT/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    Microsoft.Office.Interop.Excel
    Version de l'assembly*: 10.0.4504.0
    Version Win32*: 10.0.4504
    CodeBase*: file:///C:/Documents%20and%20Settings/NWNogreJo/Local%20Settings/Apps/2.0/OJ20BC26.KXT/GONYRGCN.6K2/appl..tion_db37345aac6ae4cc_0001.0000_877e754de720ec5a/Microsoft.Office.Interop.Excel.DLL
    ----------------------------------------
    CustomMarshalers
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.42 (RTM.050727-4200)
    CodeBase*: file:///C:/WINNT/assembly/GAC_32/CustomMarshalers/2.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll
    ----------------------------------------
    System.Windows.Forms.resources
    Version de l'assembly*: 2.0.0.0
    Version Win32*: 2.0.50727.42 (RTM.050727-4200)
    CodeBase*: file:///C:/WINNT/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** Débogage JIT **************
    Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
    application ou cet ordinateur (machine.config) doit avoir la valeur
    jitDebugging définie dans la section system.windows.forms.
    L'application doit également être compilée avec le débogage
    activé.

    Par exemple*:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
    seront envoyées au débogueur JIT inscrit sur l'ordinateur
    plutôt que d'être gérées par cette boîte de dialogue.
    Soupçonnant un problème de compatibilité entre Vista / W2K d'une part et VS 2008 / VS 2005 d'autre part, j'ai demandé à ce qu'on m'installe un VS 2005 sur une station W2K.
    J'ai copié les sources de Vista vers W2K et j'ai cherché à recompiler l'appli.

    Je recontre 3 erreurs :
    Erreur 193 CA0058 : Certaines références d'assembly n'ont pas pu être résolues. Les résultats pourront être incorrects ou incomplets. Appli_PPDS
    Erreur 194 CA0058 : Impossible de trouver la dépendance manquante 'Office, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Ce module était référencé par*: Microsoft.Office.Interop.Excel.dll Appli_PPDS
    Erreur 195 CA0058 : Impossible de trouver la dépendance manquante 'Microsoft.Vbe.Interop, Version=10.0.4504.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Ce module était référencé par*: Microsoft.Office.Interop.Excel.dll Appli_PPDS
    J'ai remis les sources issus du backup fait lors de la conversion VS 2005 => VS 2008. Même motif,même punition.

    Je suis même reparti d'une sauvegarde du projet, toujours le même problème.

    Je pense qu'une référence, inutile sous VS 2008, a disparue.

    Mes recherches dans Google parlent d'installer "O2003PIA" et/ou "OWC11", ce que j'ai fait (il me semble toutefois que O2003PIA ne s'installe pas correctement)

    Cela fait 4 jours que je galère sur ce problème, je ne sais plus où chercher.

    Toutes aides et toutes suggestions seront les bienvenues.

    Merci

    Joël

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    J'ai résolu mon problème :
    1. En recherchant sur mon disque un fichier office.dll et en l'ajoutant à mes références
    2. en ajoutant à mes références onglet com Microsoft Visual Basic for Applications Extensibility


    Par contre, je rencontre un nouveau problème :

    lorsque j'essaye de mettre à jour une cellule du tableur en sortie j'ai une exception sur l'affectation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Col As Long = 1
    mSheet.Cells(1, Col).value = "GROUPE PSG"
    L'exception COMExeption n'a pas été gérée
    Type de variable incorrect. (Exception de HRESULT : 0x80020008 (DISP_E_BADVARTYPE))

    lorsque je regarde la définition de Cells j'obtient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ReadOnly Property Cells() As Microsoft.Office.Interop.Excel.Range
    Membre de*: Microsoft.Office.Interop.Excel._Worksheet
    Ce qui m'inquiète, c'est que ce soit une propriété en read-only et que ce même programme fonctionne sous Vista / VS 2008


    Merci de vos aides éclairées

    Joël

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    j'ai modifier mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mSheet.Cells(1, Col).value = "GROUPE PSG"
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mSheet.Range(mSheet.Cells(1, Col)).Value2 = CObj("GROUPE PSG")
    j'ai toujours la même exception.

    Quelq'un peut-il m'aider à mettre à jour une cellule d'une feuille d'un classeur Excel 2003 avec VB.NET 2005 sous Windows 2000 ?

    Merci à tous

    Joël

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    mSheet.Cells(ligne, colonne) = "Valeur", fonctionne très bien sur vs2005 et office 2003.

    Par contre, mSheet.Range(mSheet.Cells(1, Col)).Value2 risque pas de fonctionner avec 2 collé à value !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    désolé electro,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mSheet.Cells(1, Col) = "GROUPE PSG"
    me donne toujours une exception
    Type de variable incorrect. (Exception de HRESULT : 0x80020008 (DISP_E_BADVARTYPE))

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Ouf, j'ai enfin trouvé.

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mSheet.Cells(1, Col) = "GROUPE PSG"
    Col est déclaré comme
    Si ce code fonctionne bien sous Vista, VS 2008 et Office 2007, pour W2K, VS 2005 et Office 2003 il faut le déclarer comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Col As Integer = 1
    A Bientôt !

    Joël

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème compatibilité WPF entre VS2005/2008 ?
    Par roster dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 13/02/2009, 01h05
  2. Problème compatibilité PERL SH CSH
    Par minusette dans le forum Modules
    Réponses: 7
    Dernier message: 03/10/2005, 10h03
  3. Réponses: 3
    Dernier message: 26/09/2005, 15h20
  4. [HTML] Probléme compatibilité Mozilla
    Par hedgehog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/06/2005, 09h30
  5. problème compatibilité IE
    Par Shivaneth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 03/05/2005, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo