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

C# Discussion :

Interop Outlook - différence de version - plantage


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut Interop Outlook - différence de version - plantage
    Bonjour,

    j'ai développé un outil en C# qui pilote Outlook, Word et Excel.

    Je suis dans un cas de figure assez particulier.

    J'ai commencé mon développement il y a quelques semaines, et la version Interop.Outlook disponible dans mon dossier Assembly (C:\Windows) est 14.0.4760.1000 alors que la version courante d'Outlook sur le poste est 14.0.7173.5000.

    Cette différence est certes minime, mais génère des erreurs d'exception et empêche par la suite le lancement multiple d'Outlook.

    le bout de code en question :
    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
    using Outlook = Microsoft.Office.Interop.Outlook;
    ...
    Outlook.Application OlApp;
                if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
                {
     
                    // If so, use the GetActiveObject method to obtain the process and cast it to an Application object.
                    OlApp = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
                }
                else
                {
     
                    // If not, create a new instance of Outlook and log on to the default profile.
                    OlApp = new Outlook.Application();
                }
    Quelqu'un aurait une solution pour corriger le problème de version ou pour recommander un gestion plus pragmatique sans avoir à passer par un try catch ?

    Merci
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Cela me surprend un peu. Si mes souvenirs sont exacts, et si Microsoft n'a pas changé d'idée, les Primary Interop Assemblies (PIA pour les intimes), les dll Interop ont eu des GUID différents d'Office 2002 à Office 2003, mais sont constants depuis Office 2003. En principe, encore que là tu soulèves une incertitude, VS, ou Office, vont utiliser le fichier le plus récent sur la machine, et tant que tu t'en tiens à ce qui est commun à toutes les versions, c'est supposé passer comme su beurre dans la poêle. Mais là la batterie se vide et le McDo ferme dans quelques minutes. Je vais quand même faire quelques vérifications et je vais essayer de de te revenir demain.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Hello Clément,

    à noter que depuis mon poste, la mise à jour des packages nuget n'est pas possible sur le site nuget.org. Je ne saurais te dire si c'est en lien direct avec ma problématique présente, mais sait-on jamais.

    Merci
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je n'ai trouvé rien de mieux que ce que j'ai dit hier. J'ai trouvé bizarre que dans mes références de VS j'ai les bibliothèques Interop pour Office 2013 et Office 2016. Mais dans la GAC et dans le registre j'ai juste Office 2016.

    Si ta version 14 est celle d'Office 2010, tu peux essayer de passer par là, sans trop savoir si les fichiers sont à jour:

    https://www.microsoft.com/en-us/down...s.aspx?id=3508

    Comment as-tu essayé ta mise à jour de package ?

    Si c'est avec l'hôte PowerShell (menu outils de VS) et update-package, les messages d'horreur sont en rouge.

    Sinon. tu peux les télécharger sur ton disque avec NugetPackageExplorer et essayer une mise à jour locale.

    Ah, aussi, VS est croche avec NuGet. Regardes dans ta liste déroulante si tu as la source locale ou la source en-ligne. Il ne s'ajuste pas automatiquement.

    Si tu ramasses une erreur OLE avec un numéro -2 et une longue liste de chiffres tu as un peu d'Informations sur cette vieille page, pas vraiment à jour. Mais, des fois, cela marche.

    Un autre truc que j'utilise est de mettre le message d'erreur (entre guillemets) dans le moteur de recherche de MSDN Mais, cela peut être long longtemps quand vient le temps d'élaguer.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Je suis bloqué pour les maj de package, donc pas moyen de faire de subtilité :/

    Concernant l'erreur que j'obtiens sur la ligne de Marshal :
    Opération non disponible (Exception de HRESULT : 0x800401E3 (MK_E_UNAVAILABLE))
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sur ma page, ils disent:

    -2147221021 (800401E3) Opération non disponible.
    Comme si tu ne pouvais plus (pas) avoir plus d'une instance d'Outlook ouverte. Mais là, je ne connais pas assez Outlook pour savoir

    Mais, comme c'est une erreur OLE, et que OLE est une fonctionnalité de Windows; cela pourrait venir de Windows et non de ton programme lui-même. Es-tu sûr que ce sont deux versions identiques de Windows ?

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

Discussions similaires

  1. pb Microsoft.Office.Interop.Outlook en version 10.0
    Par julienspy dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/07/2007, 14h14
  2. [Certif] Différence entre version anglaise et française ?
    Par Jérôme Lambert dans le forum Général Dotnet
    Réponses: 13
    Dernier message: 15/01/2007, 10h10
  3. Différence entre version 8.16 et 8.1.7.4
    Par billout9 dans le forum Oracle
    Réponses: 3
    Dernier message: 13/10/2006, 08h23
  4. différence entre version entreprise et standard?
    Par aline dans le forum Oracle
    Réponses: 13
    Dernier message: 12/07/2005, 16h54

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