Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9

    VB.NET - Compilazione x86

    Ciao a tutti,
    è da un paio d'anni che non sviluppo più applicazioni.
    Ho sempre sviluppato con VB6.

    Ora ho realizzato una piccola applicazione con VB2012.
    L'ambiente di sviluppo è installato in Win8 64 bit.

    L'applicazione deve girare anche su sistemi a 32 bit.
    Ho quindi impostato su Compila-->Gestione Configurazione la piattaforma x86.

    Ma purtroppo quando porto l'eseguibile su un pc con WinXP mi dice "non è un'applicazione di Win32 valida". :-(

    Ho provato a impostate anche AnyCPU ma il risultato non cambia!

    Potete aiutarmi?
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9
    Penso di aver capito....
    Ho provato a realizzare dei piccoli progetti di prova, uno con VB2010 e l'altro con VB2012.
    Entrambi sviluppando in Windows 8.
    Una semplice form con un bottone ed un MsgBox("TEST")
    Nessuno dei due funzionava in una macchina pulita con WinXP+SP3 :-(

    Ho quindi provato ad installare, sempre su WinXP, il Framework 4.0 e come per magia, l'eseguibile realizzato con VB2010 è partito regolarmente...

    Invece l'eseguibile realizzato con VB2012 continua a dirmi che non è valido.
    Ho quindi provato ad installare, sempre su WinXP, il Framework 4.5 ma purtroppo non è supportato e quindi niente da fare.... :-(

    Conclusioni:
    - Con VB6 compilo il file EXE e funziona d'appertutto!
    - Con VB2010 compilo il file EXE e funziona solo se c'è installato il Framework 4.0, quindi sono obbligato a creare un pacchetto di installazione che preveda la sua installazione!
    - Con VB2012 è praticamente impossibile realizzare un EXE compatibile con WinXP
    - Con VB2010 e VB2012 un'applicazione di poche righe e quindi pochi Kb deve portarsi dietro decine di Mb per il Framework: pazzesco!!


    Vi prego ditemi che sto sbagliando e che c'è una semplice soluzione a tutto questo!

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da emicad
    - Con VB6 compilo il file EXE e funziona d'appertutto!
    No, non funziona dappertutto.

    Funziona solo dove c'è installata la DLL di runtime (MSVBVM60.DLL).

    Con VB2012 è praticamente impossibile realizzare un EXE compatibile con WinXP
    I due prodotti sono molto "distanti" e mi pare normale che, dopo molto tempo, alcuni software diventino incompatibili con dei sistemi operativi.

    Vi prego ditemi che sto sbagliando e che c'è una semplice soluzione a tutto questo!
    Non stai sbagliando e non mi pare pazzesco (ad esempio, pensi di poter utilizzare programmi java senza avere installato il runtime?)

    Il framework va installato *una sola volta* sul PC. Quindi, dove non c'è, va installato (anche a cura dell'utilizzatore), altrimenti non devi portarti nulla dietro.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9
    Originariamente inviato da oregon
    No, non funziona dappertutto.

    Funziona solo dove c'è installata la DLL di runtime (MSVBVM60.DLL).
    Praticamente da Win2000 in poi funziona d'appertutto ;-)
    Almeno la mia applicazione, oltre ai miei test è stata distribuita a migliaia di utenti e nessuno ha mai detto il contrario...

    Il framework va installato *una sola volta* sul PC. Quindi, dove non c'è, va installato (anche a cura dell'utilizzatore), altrimenti non devi portarti nulla dietro.

    Ho letto in un altro forum che il framework 2.0 è già installato in WinXP SP2 e quindi ho provato ad impostare quest'ultimo nel mio progetto; ma da un test viene emesso questo errore "Applicazione non correttamente inizializzata...."

    E' possibile risolverlo? La mia applicazione è di una banalità unica che far installare un framework da scaricare separatamente ecc. è praticamente ridicolo (almeno nel mio caso...)

    Come posso verificare quale framework è già installato nel sistema? intendo: è possibile verificarlo da pannello di controllo?

    Grazie in anticipo

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da emicad
    Praticamente da Win2000 in poi funziona d'appertutto ;-)
    Almeno la mia applicazione, oltre ai miei test è stata distribuita a migliaia di utenti e nessuno ha mai detto il contrario...
    Certo, neanche i miei hanno detto nulla circa le applicazioni .NET perché avevano già installato il Framework dappertutto.

    A parte il fatto che con un opportuno programma di installazione è possibile scaricare ed installare il framework se questo manca.

    All'inizio il runtime di VB6 non veniva installato di default in Windows e molti programmi non funzionavano. E' comunque il principio del "runtime" su cui mi volevo soffermare per dirti che VB6 non era "magico" ma si basava anch'esso su un runtime, molto più piccolo e meno completo, ma comunque su un runtime *necessario*.

    E' possibile risolverlo? La mia applicazione è di una banalità unica che far installare un framework da scaricare separatamente ecc. è praticamente ridicolo (almeno nel mio caso...)
    Non mi sono spiegato ... l'utente non deve scaricare il framework per la *tua* applicazione in particolare ma per tutte le applicazioni .NET. Se la tua è la prima che installa non c'è differenza se questa è banale o no ... scarica il framework, lo installa e non ha problemi da quel momento in poi.

    Che io sappia WinXP non ha alcun framework preinstallato e il 2.0 lo devi installare.

    Qui

    http://msdn.microsoft.com/en-us/library/bb822049.aspx

    trovi tutte le indicazioni.

    Come posso verificare quale framework è già installato nel sistema? intendo: è possibile verificarlo da pannello di controllo?
    Se controlli la cartella

    C:\Windows\Microsoft.NET\Framework

    ti fai un'idea su cosa è installato. Se vuoi maggiori dettagli allora nel registro

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9
    Grazie per le tue precisazioni!
    Insomma ho capito che devo per forza verificare se esiste il framework e quindi installarlo.

    Mi devo adeguare

    Speravo in qualche modo di evitarlo

    Ancora grazie!

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con una applicazione ClickOnce puoi determinare automaticamente la mancanza del framework, scaricarlo ed installarlo includendolo nei "prerequisiti" ... vedi

    http://msdn.microsoft.com/en-us/library/8st7th1x(v=vs.80).aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9
    Originariamente inviato da oregon
    Con una applicazione ClickOnce puoi determinare automaticamente la mancanza del framework, scaricarlo ed installarlo includendolo nei "prerequisiti" ... vedi

    http://msdn.microsoft.com/en-us/library/8st7th1x(v=vs.80).aspx
    Grazie per la precisazione.
    Tuttavia per vari motivi di coesistenza tra varie applicazioni, plug-in ecc. che non sto qui a spiegare per non dilungarmi troppo, il pacchetto di installazione è stato realizzato con InnoSetup.

    Ora ho un'altro dubbio, se utilizzo il file EXE compilato con VB2012 e Frameworks 2.0 sarà compatibile su un sistema con già installato un Framework successivo? oppure serve obbligatoriamente il 2.0?

    Da una prova che ho fatto sembra che serva obbligatoriamente il 2.0...
    Me lo puoi confermare?

    Grazie in anticipo.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per default serve quello con cui l'hai compilato. Per questo possono coesistere in un PC.

    Però puoi gestire la chiave supportedRuntime ... vedi

    http://msdn.microsoft.com/en-us/library/ff602939.aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    9
    Originariamente inviato da oregon
    Per default serve quello con cui l'hai compilato. Per questo possono coesistere in un PC.

    Però puoi gestire la chiave supportedRuntime ... vedi

    http://msdn.microsoft.com/en-us/library/ff602939.aspx
    Ho letto ed effettivamente supportedRuntime sembra fare al caso mio, ma sinceramente non ho capito dove inserire la stringa di codice riportata nel link da te suggerito.

    In ogni caso preferisco includere il FW dentro il pacchetto di installazione in modo da evitare che l'utente finale perda tempo nell'attendere il completamento del download.

    Considerando che posso compilare l'applicazione con qualsiasi FW, quale mi conviene inserire?

    Ho compilato con FW2.0 convinto che essendo il più vecchio fosse più probabile che fosse già presente nel sistema dell'utente finale, ma oggi ho fatto una prova con un Windows 8 pulito e dopo aver avviato l'installazione di FW 2.0, Windows mi ha chiesto di scaricare/installare il FW3.5 in quanto dice che il FW2.0 è già presente in quest'ultimo (ovvero nel FW3.5)

    A questo punto penso che convenga inserire il FW3.5...

    Cosa ne dici?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.