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

VB.NET Discussion :

Problèmes de référence et d'assembly Office


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Par défaut Problèmes de référence et d'assembly Office
    Bonjour.

    J'ai une application dans la quelle je doit aller modifier un fichier Excel. Pour le moment, afin de tester, j'ai juste un fonction qui ouvre mon fichier, modifie la case A1 et ferme le fichier sans sauvegarder.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Imports Microsoft.Office.Interop.Excel
    Imports Microsoft.Office.Interop
     
        Public Shared Sub PrintXls()
            'Déclaration des variables
            Dim Xls As Microsoft.Office.Interop.Excel.Worksheet
            Dim xlsapp As New Microsoft.Office.Interop.Excel.Application
            Dim Xlsbook As Microsoft.Office.Interop.Excel.Workbook
     
            'lancement d'excel et ouverture du fichier
            Xlsbook = xlsapp.Workbooks.Open("c:\GDC.xls")
     
            xlsapp.Visible = True
            Xls = Xlsbook.Worksheets(1) 'avant je mettais Xls = Xlsbook.Worksheets("Test")  ... ça ne fonctionne pas ^^
            Xls.Range("A1").Value = "Test"
     
            Xlsbook.Close(False)
            Xlsbook = Nothing
            xlsapp = Nothing
        End Sub
    Ça fonctionne tout comme il faut ... sauf quand je déploie l'application sur un poste de test

    Au début ça allait ... une foie déployé l'application fonctionnait bien ... même quand elle allait modifier le fichier Excel. J'avais une erreur mais seulement lié à un mauvais index de WorkSheet (je mettais le nom et pas le numéro). L'application se démarrait bien ... et plantait seulement quand je cliquai sur le bouton pour exécuter la fonction.

    J'ai donc modifié la fonction pour quelle soit juste. Depuis j'ai au lancement de l'application un message comme quoi je doit d'abord installer l'assembly pour Office 12.

    Sur le poste test j'ai Office 11 ... et sur mon poste de développement j'ai les offices 11 et 12 ... cependant je n'ai mis que la référence .net pour le Excel 11.

    Alors oui sur mon poste, l'Excel par défaut est le 12 ... mais dans mon application je n'en parle jamais. Ça fonctionnait très bien 5 minute avant ... je corrige une petite faute et ça fonctionne plus.

    J'ai remis comme avant le code mais rien à faire ... quand je publie l'appli ça me demande toujours l'assembly Office 12.

    J'avoue ne pas comprendre d'où viens le problème ... vous avez des idées? ... je suis très novice dans les ajouts de référence pour publication et dans la publication ... je fait peut-être quelque chose de mal.

    En tout cas merci d'avance.

    P.S. : d'ailleurs, est-ce normal, qu'à la fin de ma publication, ça essaie d'ouvrir une page Internet vers mon projet? ... ça me gène pas mais je trouve ça louche

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Salut,

    Pour éviter ces problèmes de DLLs, voici comment je procède en général :
    Ajout dans mon projet d'un répertoire DLLs dans lequel je copie mon fichier DLL.
    Dans mon projet, je fais référence a ce fichier.

    Ensuite j'utilise ILMerge pour merger mon exe et la dll comme ça, je suis sur qu'il n'y a pas de probleme de référence de Dlls manquantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ILMerge /target:exe /out:"D:\monExeFinal.exe" "D:\monExe.exe"
    "D:\Microsoft.Office.Interop.Excel.dll" 
    "D:\Office.dll"

  3. #3
    Membre éclairé Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Par défaut
    Je regarderai ça cette après midi.

    Je te remercie pour l'information.

  4. #4
    Membre éclairé Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Par défaut
    Bon alors déjà ... ça coince au niveau de la Dlll.

    Je n'arrive pas à trouver où la récupérer.

    Est-ce que par hasard tu aurai une réponse à cette énigme pour moi?

    J'ai bien trouvé l'assembly (dans c:\Windows\assembly) ... mais je n'ai pas trouvé la Dll en elle même ... je n'ai donc pas le fichier Dll pour pouvoir l'ajouter au projet.

    Je me dit que j'ai fait surement un mauvais réglage dans la publication.


  5. #5
    Membre éclairé Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Par défaut
    Bon alors finalement j'ai trouvé la Dll.

    Je sais pas si ça suffira, mais purement par hasard je suis tombé dessus.

    Alors pour info on peut la trouver dans le répertoire "C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Excel.dll"

    Je vais essayer ILMerge et je te tiens au courrant.

    Merci à toi.

  6. #6
    Membre éclairé Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Par défaut
    Bon alors après plusieurs tests je me retrouve avec le message d'erreur suivant

    ILMerge.Merge: Could not load assembly from the location '\\annecy\temp1\356\GDC
    \setup.exe'. Skipping and processing rest of arguments.
    à ILMerging.ILMerge.Merge()
    à ILMerging.ILMerge.Main(String[] args)
    J'ai vérifié mes chemins d'accès. J'ai essayer avec une autre syntaxe (sous la forme => ILMerge.exe "App.exe" "Lib1.dll" /out:"MergeApp.exe")

    J'ai essayé en passant par l'interface graphique Gilma.

    J'ai toujours le même message d'erreur sur mon fichier "setup.exe".

    Mon fichier "setup.exe" ne ce trouve pas dans le même répertoire que la dll.

    Le fichier "Setup.exe" est celui généré par Visual Studio 2008 quand je fait "Générer\Publier le projet" ... je pense que le soucis viens d'ici ... mais je vois pas ce que c'est...

    Une piste de réflexion?

    D'avance merci.

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

Discussions similaires

  1. Could not load file or assembly 'office - Problème
    Par laszia dans le forum VB.NET
    Réponses: 4
    Dernier message: 08/12/2007, 04h50
  2. [FLASH MX2004] this et problème de référence
    Par cristolb dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 03/05/2006, 22h33
  3. Problème de signature d'une assembly
    Par lapec_and_cie dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 23/01/2006, 12h31
  4. Problème de référence de données circulaire
    Par Wismerhill50 dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2005, 22h38
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

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