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 :
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
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
Partager