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 :

Erreur de format 64/32 bits avec SQLite dll


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut Erreur de format 64/32 bits avec SQLite dll
    Bonjour,

    Une application que j'ai créée en C#, visual studio (windows form) il y a un an ne démarre plus.

    J'ouvre son projet visual studio sur lequel je ne suis pas retourné depuis des mois et j'ai un message d'erreur au lancement :
    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
    21
    22
            static void Main()
            {
     
                using (Mutex __mutex = new Mutex(false, @"Global\" + APP_UNIQUE_ID)) // unique pour toutes les sessions
     
                //using(Mutex __mutex = new Mutex(false, APP_UNIQUE_ID)) // unique uniquement pour la session en cours
     
                {
                    if (!__mutex.WaitOne(0, false))
                    {
     
                        MessageBox.Show("ZartView est déja démarré.");
                        return;
                    }
     
                    GC.Collect();
                    Application.EnableVisualStyles();
                    Application.Run(new ZartsView()); // <------------- Erreur ICI
     
     
     
                }
    System.BadImageFormatException*: 'Impossible de charger le fichier ou l'assembly 'System.Data.SQLite.dll' ou une de ses dépendances. n’est pas une application Win32 valide. (Exception de HRESULT : 0x800700C1)'
    Mes recherches me dirigent vers un problème entre formats 64 et 32 bits. La dll en question ne serait pas du bon format.
    Sauf que je n'ai touché à rien depuis des mois. L'application compilée et installée sur mon ordi fonctionnait encore le mois dernier.
    L'environnement de configuration de visual studio est inchangé : Debug x86

    Si je le passe en x64 une erreur survient également mais plus tard, à la tentative de connexion avec la BdD SQLite.
    ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connexion = new SQLiteConnection(@"Data Source=.\artcollection.db; Version = 3");
    System.BadImageFormatException*: 'Tentative de chargement d’un programme de format incorrect. (Exception de HRESULT : 0x8007000B)'
    La dll et ses dépendances que j'utilise sont toutes en 32 bits. Je viens de toutes les vérifier.
    Même mon appli est correctement compilée en 32 bits.
    (pour ce faire j'utilise une astuce avec Notepad vue sur le net : Dans l'entête, "PE L" signifie 32 bits, "PE d†" signifie 64 bits.

    J'en perd mon latin. Si rien n'a changé, comment cela a-t-il pu changer ?

    Je ne sais absolument pas par quel bout commencer à prendre ce truc.
    Merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Je précise que j'ai une autre application plus récente qui fonctionne très bien avec les réglages suivants.

    Configuration ANY CPU,
    plateforme cible x86,
    framework identique 4.7.2,
    mêmes fichiers dll SQLite.
    Méthode de connexion à la BdD copié collé de l'ancienne appli.

    (J'ai appliqué le seul réglage différent, ANY CPU, de la plus récente sur l'ancienne mais le problème est toujours présent)

    Pour l'ancienne appli qui ne démarre plus j'avais cherché une solution pour empêcher deux instances de se lancer.
    J'avais copié collé un code du net.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            [STAThread]
            static void Main()
            {
    voir code du message au-dessus...
    Je ne sais plus comment revenir en arrière. Si je place en commentaire la méthode un message d'erreur apparaît :
    CS5001 C# Le programme ne contient pas de méthode 'Main' statique adaptée à un point d'entrée
    Mon appli plus récente ne possède pas ce code et le point d'entrée est défini par Visual Studio (indéfini) sans que je m'en occupe.

    Je ne sais pas si cela peut avoir un rapport avec mon souci.
    Merci

Discussions similaires

  1. Librairie ADO : compilation 64 bits avec msado15.dll
    Par JackVa dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 17/12/2018, 18h30
  2. Réponses: 0
    Dernier message: 14/12/2017, 10h53
  3. [Lazarus] [Windows 8] Problème avec Sqlite en 64 bits
    Par ovni76 dans le forum Lazarus
    Réponses: 4
    Dernier message: 28/12/2013, 16h52
  4. Erreur avec sqlite
    Par yeddes dans le forum SQLite
    Réponses: 3
    Dernier message: 12/09/2013, 11h47
  5. Erreur compilation programme en c avec sqlite
    Par Mat08 dans le forum SQLite
    Réponses: 0
    Dernier message: 07/09/2013, 06h06

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