lundi 22 février 2016

ClickOnce et les bugs de io.FileLoadException et de localDB !

J'ai une méthode qui plante, sans entrer dedans, avec le message suivant :

An unhandled exception of type 'System.IO.FileLoadException' occurred in MonProgramme.exe

Additional information: Could not load file or assembly 'YouTrackSharp, Version=2.0.30.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)

La méthode en question utilise un assembly particulier mais la classe était déjà instantiée...

J'ai lu que ce pouvait être un problème de Licence.  Effectivement, quand j'éfface et je réinstalle le YouTrackSharp et ses dépendances je vois que le JsonFx demande d'accepter une License...

Solution : il faut décocher "Sign the assembly" avec le certificat de Test créé automatiquement par VS.

Bref, NE PAS SIGNER UN ASSEMBLY SI UN PACKAGE NE L'EST PAS !!!

J'imagine qu'on peut aussi signer l'assembly fautive mais c'est plus compliqué (sauf si on veut vraiment signer notre application... article à suivre ;-)

Deuxième problème .net du jour !

Déployer un sqlLocalDb dans un clickonce .net 4.  L'application plante au démarrage car elle ne peut accéder à la BD.

context.Database.Initialize(false); // Dans Main() oblige à créer la bd si inexistante.

Visual Studio (même 2015) ne permet pas (simplement) de publier un bon LocalDB avec les "prerequisites" !  Maximum "SQL Server 2012 Express LocalDB".  Alors il faut dire au client d'installer lui-même le LocalDB 64BIT\SqlLocalDB.msi (2014, cliquer installer pour voir les différentes versions et dire au client d'essayer la 64 ou la 32).

Trucs de même:

Utiliser la console pour tester :
sqllocaldb info
pour voir les instances de "\\v11.0" et/ou "mssqllocaldb" (ne pas oublier double backslash car esc)

Et surtout, se connecter avec MS SQL Management Studio avec Windows Authentication
(LocalDb)\V11.0 ou (LocalDb)\mssqllocaldb