Capita a noi informatici, di tanto in tanto, di incappare in problemi inspiegabili. Quei problemi che ti fanno girare talmente tanto le scatole da portarti a prendere in considerazione l’idea di cambiare mestiere, magari per uno più pratico. Il fabbro ad esempio, che bel mestiere, il fabbro è un artista, e tutto ciò che crea è il semplice frutto delle sue azioni, dà un colpo sul pezzo di ferro, e quello si piega. Non si piega? Ne dà uno più forte. Semplice. Pura fisica.
Con i software non sempre è così. Usi un programma, qualcosa non va, e non capisci quale diamine possa essere la causa. Dare un colpo più forte potrebbe solo peggiorare le cose
A chi non è mai capitato. Beh, con un passato da “linuxaro” a me è capitato spesso, anzi spessissimo. Eh quante guerre ho vinto contro la mia Gentoo, sfide all’ultima dipendenza, ore e ore spese inutilmente. Per non parlare della più vecchia Slackware :° Guerre che se non fossi stato testardo quanto sono, avrei perso sicuramente.
I tempi cambiano, ma le situazioni no. Ieri mi trovavo a fare il deploy di un’applicazione C# WPF, che interagisce con un database SQLite tramite il provider SQLite.Net, della famiglia ADO.Net. Prendo il mio Visual Studio 2010, ci installo InstallShield 2010, e creo il mio installer. Creo una macchina virtuale con una installazione “fresh” di Windows XP e framework .Net 4.0, installo il mio programmino. Tadadadammmm.. doppio click.. compare la classica finestra d’errore di windows -.-’ (tipica “faccia a goccia”)
Ora, siccome questa storia ha stancato fin troppo anche me, taglio corto e arrivo dritto alla fine: dopo aver sbattuto per delle ore, e dico ORE, ho finalmente risolto. Il problema era dovuto al fatto che la libreria del SQLite (System.Data.SQLite.dll) è stata sviluppata in MixedMode (SQLite è scritto in C) e per funzionare con il framework .Net 4.0 ha bisogno della direttiva useLegacyV2RuntimeActivationPolicy=”true” nel file di configurazione.
Ovvero nel file di configurazione app.config dell’applicazione va aggiunto:
Morale della favola, meno male che sono testardo, altrimenti non avrei risolto un bel niente
