Installazione software VB NET con inno setup - Visual Basic Tips and Tricks - Forum - Altro - Setup
Questo sito utilizza cookie tecnici e di terze parti. Continuando la navigazione sul nostro sito accetti l'uso dei cookie. Per saperne di più leggi l'informativa sui cookie.   


Installazione software VB NET con inno setup
Ultimo messaggio: 19 giu 2019 19:35 di Roberto.M. 3 Risposte.
Stampa gradevole
Solo gli utenti registrati possono rispondere ad una discussione.
Avatar
Daniele
Messaggi: 49
Iscritto dal: 11 nov 2013 08:48
Utente
Utente

14 giu 2019 20:48
Ciao, o meglio buona sera a tutti,

Mi è capitato un problema del quale dal cliente non ne sono venuto a capo, per cui ho dovuto rimettere in piedi il vecchio sistema!

Ho fatto un software che si occupa di gestire una bilancia di fine linea (una via a rulli), dove passano scatole etichettate con un barcode.

Comunico con le bilance e i barcode con dei convertitori seriale-ethernet della Moxa, per cui ottengo delle virtual com.

Ovviamente sul pc di sviluppo funziona tutto regolarmente.

Ho sviluppato in ufficio con Win7 32 bit (VS 2008), poi ho trasferito l'intera cartella della soluzione sul portatile Win7 64 bit, compilando sempre con opzione Any CPU.

In pratica dopo un po di modifiche, il software ha cominciato ad andare in crash (installato su win server 2008 R2), e da li non ne sono più uscito.

Se tornavo alla versione originale (portata dall'ufficio), questa "funzionava", se usavo la versione dove obbligatoriamente ho dovuto fare modifiche/correzioni col portatile, andava in crash random ogni volta a diverse fasi diverse.

Per l'installazione uso inno setup, dove includo manualmente tutti i file riportati nella cartella Release. (questo è corretto oppure no ?)....l'ho usato altre volte così con esito positivo...

E' poi corretto usare l'opzione Any CPU ?

In ultimo, è corretto una volta terminato la scrittura ed il debug del software, selezionare l'opzione Release ed eseguire la ricompilazione ?

Stò passando da vb6 a vb net, ma ogni tanto ho sorprese:(

Grazie a chi mi darà qualche suggerimento

 

Daniele G

    Avatar
    Roberto.M
    Messaggi: 16
    Iscritto dal: 10 set 2012 14:35
    Utente
    Utente

    15 giu 2019 18:18

    Ciao, 

    Se usi AnyCpu in effetti qualche differenza c'e tra compilazione in ambiente 32 o 64 bit.

    Usi qualche libreria esterna magari qualche vecchio ocx o libreria COM, nel programma? 

    Oppure referenzi qualche dll .Net gia' compilata a 32 bit?

    In questo caso dovresti compilare a 32 bit. Ho trovato anche questo:

    http://www.visual-basic.it/Forum/ta...fault.aspx

    Se il crash e' randomico pero' mi viene in mente anche altro: L'applicazione ha una UI o e' console o un windows service? 

    Se c'e un form, potrebbero esserci problemi di chiamate cross-thread con la UI usando il serial port di .net. Infatti la ricezione dei dati avviene su un thread differente da quello dell'interfaccia utente.

    Magari metti qualche una qualche forma di log per capire dove si schianta.

    Per la procedura di installazione non vedo problemi, io spesso copio direttamente i files .exe e .dll  da \Release 

    Ciao

    Roberto

     

      Avatar
      Daniele
      Messaggi: 49
      Iscritto dal: 11 nov 2013 08:48
      Utente
      Utente

      17 giu 2019 07:57
      Ciao Roberto, e grazie per la risposta.

      Non uso OCX, le uniche dll "non standard" sono quelle di Advantech, per pilotare dei moduli I/O.

      Nel mio form, in tutte (a meno di dimenticanze ma controllerò), ho inserito la try catch ex..., andando a scrivere un l'ex.message sottoforma di log in un database.

      La cosa che non capisco, e che "apparentemente" se compilo col mio desktop win732 bit, va tutto, se dal cliente daccio modifiche e ricompilo col portatile win764 bit, mi da i problemi.

      (come dicevo, sempre impostato su Any Cpu).

      Grazie ancora

       ciao

      Daniele

        Avatar
        Roberto.M
        Messaggi: 16
        Iscritto dal: 10 set 2012 14:35
        Utente
        Utente

        19 giu 2019 19:35

        Ciao Daniele, 

        scusa il ritardo nella risposta, non guardo il gruppo tutti i giorni.

        la compilazione con AnyCpu e' legata all'ambiente dove il programma e' compilato.

        Se ho capito bene come funziona, se sei in ambiente x64 alla partenza del programma, .Net lo compilerà a 64 bit, e se hai delle dll esterne a 32 bit probabilmente non funzioneranno, in parte o tutte.

        Ho avuto questo problema con le dll di SqLite, che se le scarichi direttamente dal loro sito , ti propongono in una infinità di varianti a 32 e 64 bit. Potrebbe essere il caso delle dll di Avantech? (purtroppo non le conosco, e i moxa ormai li uso solo direttamente via tcp socket senza emulazione seriale)

        Probabilmente dovresti forzare la compilazione X86 a 32 bit su visual studio su tutti gli ambienti dove compili, perlomeno io con SqLite ho fatto cosi'.

        Ti lascio un paio di riferimenti alla questione X86/AnyCPU, purtroppo in inglese.

        https://www.codeproject.com/Articles/1160645/Dealing-with-bit-bit-and-Any-CPU-Compilation-Optio

        https://stackoverflow.com/questions/5702825/build-configuration-mixed-platform-vs-any-cpu

        in italiano (tradotto piu o meno)

        https://code-examples.net/it/q/7e27a

         

        spero sia di aiuto

          Solo gli utenti registrati possono rispondere ad una discussione.