Au Secours : Appli développée en x64 distribuée sur un Windows XP

Résolu
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 - 3 sept. 2011 à 03:10
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016 - 9 sept. 2011 à 23:42
Bonjour à toutes et tous,

J'ai développé une application sous Windows 7 64bits en VB.Net 2010.
Sur le poste tout fonctionne correctement.

Dans mon projet, j'ai 2 DLL, une permettant l'exportation en PDF et l'autre permettant le SQLite ...

C'est avec cette dernière que j'ai des soucis, en effet dès que je déploie mon Soft sur un Windows XP (32 bits) cela m'affiche un message d'erreur : Une exception non gérée s'est produite dans votre application. L'assembly en mode mixte est créé avec la version v2.0.50727 du runtime et ne peut pas être chargé dans le runtime 4.0 sans d'autres informations de configuration.

Dans mon projet j'ai mis un fichier app.config avec ce code :
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>


Qu'est-ce que je n'ai pas fait (ou mal fait) pour que cela ne fonctionne pas ?

Je dois dans le cadre de mon travail présenté ce bout de Soft, lundi matin, merci de m'éclairer pour que cela fonctionne.

Par avance merci

Olivier

20 réponses

guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
4 sept. 2011 à 23:10
Bonsoir,

Dans le package d'installation il faut ajouter le fichier MonAppli.exe.xml ... Et ça fonctionne !

En espérant que cela puisse aider quelqu'un !

Olivier
3
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
3 sept. 2011 à 08:56
Bonjour,
Bon ca va je suis pas le seul a avoir des probleme avec SQlite.
Tu dis :
Dans mon projet j'ai mis un fichier app.config avec ce code :
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>

Moi je ne l'ai pas inclus car des que j'inclus ce bout de code, mon app bug des que j'ai un acces a une base SQlite. et des que je l'enleve ca repart.
Je suis en XP SP3 avec VSTD 2008.

Peux tu me donner des infos quant a ton bout de code svp ?
A quoi cela sert il ?
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
3 sept. 2011 à 12:12
Bonjour,

Mon programme permet de gérer une BdD de personnes (inscription/modification/suppression).

Est-ce qu'il faut que j'enlève le fichier app.config pour que cela fonctionne ?

Olivier
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
3 sept. 2011 à 16:45
Est ce ca fonctionne en debug si tu enleve ce que tu as de sqlite dans app.config.
Je dois vous avez que je decouvre SQLite ADO net je l'utilisais avant en ODBC SQlite UTF 8.
la y avait aucun soucis ca tournait tout seul et aujourd'hui avec leures nouveau truc c'est le bordel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
3 sept. 2011 à 17:17
Je vien de trouver du nouveau:
Auparavant lorsque j'ajoutais :
<DbProviderFactories>

</DbProviderFactories>
dans mon app.config cela ne focntionnais plus en debug.
Maintenant cela fonctionne en debug aussi avec.
J'ai veillé a verifier la version et le PublicKeyToken et je vais testé l'install depuis un setup
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
3 sept. 2011 à 18:08
encore cette err :
System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly
'System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'
ou une de ses dépendances. Le fichier spécifié est introuvable.
Nom du fichier : 'System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'

Ca commence a me ...
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
5 sept. 2011 à 07:52
Bonjour,
Merci pour l'infos, je test et tiens au courant.
Merci
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
8 sept. 2011 à 15:16
Bon Xml ou pas cela ne change rien
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
8 sept. 2011 à 16:09
Est il obligatoire de passer par des controle SQLITE (boite a outil) ?
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
8 sept. 2011 à 16:21
Bonjour,

Il suffit de référencer la DLL dans le projet de faire un Imports au début du code !

Bon courage !

Olivier
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
8 sept. 2011 à 17:47
La dll est deja referencee dans mon projet.
Par contre il y a ceci :
http://comments.gmane.org/gmane.comp.db.sqlite.general/65078
Sous XP elle ne fonctionnerai pas ?
Et je suis sous XP pro SP3, donc pas de deploiement si j'ai bien compris.
Quand pensez vous ?
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
8 sept. 2011 à 18:45
Y aurait il une personne qui aurait en sa possession le SQLite instal en 32 bit.
Car impossible de telecharger une installa de SQLite en 32 bits
Merci par avance
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 08:45
Alors, effectivement il y a 2 version de dll une x64 et une x32.
Probleme, la x32 n'est plus distribuée, et oui tout le monde a du x64
Enfin bref pour ceux qui aurait telecharger le SQLite-1.0.66.0-setup.exe (x64) et qui etes en dans un system x32 recuperer le SQLite-1.0.65.0-binaries et remplacer le contenu de votre dossier C:\Program Files\SQLite.NET par le contenu de SQLite-1.0.65.0-binaries.
Dans SQLite-1.0.65.0-binaries il y a System.Data.SQLite.DLL x64 et x32
Pour moi ca fonctionne maintenant reste a verifier
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 11:15
N'hesitez pas a me corriger si je me trompe svp
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
9 sept. 2011 à 11:40
Bonjour,

Pour ma part j'utilise la version SQLite-1.0.66.0-setup.exe aussi bien sur un Windows 7 32 ou 64 Bits que sur un Windows XP 32 Bits.

En fait je penses plutôt qu'il faut regarder du côté du mode de compilation de l'application : Choisir AnyPC si c'est possible ou alors x86 au lieu de x64 !

Pour ma part j'utilise le mode ANYPC qui s'adapte en fonction de l'OS sur lequel l'application est installée.

A tester évidemment !

Olivier
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 16:16
je suis en x86 je vais essayé.
Merci
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 16:18
Depuis que j'ai incorpore ce bout de code dans le form_load de ma premiere form ca tourne :
        Dim FileLibrary As String = ""
        Dim DossierApp As String = Application.StartupPath
        If Microsoft.VisualBasic.Right(DossierApp, 1) <> "" Then DossierApp = DossierApp & ""
        Dim architecture As Integer = Runtime.InteropServices.Marshal.SizeOf(GetType(IntPtr)) * 8
        Select architecture
            Case 32
                'x86
                FileLibrary = DossierApp & "x32System.Data.SQLite.dll.ok"
            Case 64
                'x64
                FileLibrary = DossierApp & "x64System.Data.SQLite.DLL.ok"
        End Select
        Me.ToolStripStatusLabel1.Text = architecture.ToString & " bit"
        ' si dossier bin exist
        If System.IO.File.Exists(FileLibrary) Then
            If System.IO.File.Exists(DossierApp & "System.Data.SQLite.DLL") Then System.IO.File.Delete(DossierApp & "System.Data.SQLite.DLL")
            System.IO.File.Copy(FileLibrary, DossierApp & "System.Data.SQLite.DLL")
        End If
  
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 16:19
en fait x32System.Data.SQLite.dll.ok et x64System.Data.SQLite.dll.ok sont deux x64System.Data.SQLite.dll un x86 et l'autre x64 que je met dans le package
0
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
9 sept. 2011 à 16:25
Je ne suis pas allé aussi loin : bravo !
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 sept. 2011 à 23:42
Pourquoi, bravo, non, ce n'est pas normal de contourner , cela devrait etre prevu.
Pourquoi favoriser l'un ! juste pour du fric ?
desole mais cela me met en boulle
0
Rejoignez-nous