59 messaggi dal 21 luglio 2006
Avrei la necessità di installare SQL Server Compact Edition tramite codice:
Function VerificaSCE()
        Dim Versione3 = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5", "Version", Nothing)
        If Versione3 <> Nothing Then
            Return True
        Else
            Dim myProcess As New Process()
            Try
                myProcess.StartInfo.UseShellExecute = False
                myProcess.StartInfo.CreateNoWindow = True
                myProcess.StartInfo.FileName = Application.StartupPath & "\Prerequisiti\SSCERuntime_x86-ITA.msi"
                myProcess.Start()
            Catch e As Exception
                MsgBox(e.Message)
            End Try
            Return True
        End If
    End Function

Con il codice sopra, verifico la presenza o no di sql e nel caso non sia installato procedo con l'installazione, ma putroppo va in errore e segnala: "L'eseguibile specificato non è un'applicazione valida per questo sistema operativo.", mentre se procedo con l'installazione normale funziona.
Ho provato con un S.O. Windows XP e Window 10 Home, ma non va con entrambi.
Grazie

Giorgio
135 messaggi dal 01 febbraio 2017
Prova a metterlo in un BAT e gli dai quello in pasto.
Oppure nel bat inserisci "START \Prerequisiti\SSCERuntime_x86-ITA.msi" così è sicuro che obblighi il sistema operativo ad eseguire il tuo comando con l'app predefinita, a prescindere dalla versione di windows.
Gino
Modificato da SensoBit il 09 novembre 2018 09.07 -

UNSTRING identifier-1 id-2 id-3
DELIMITED BY [ALL] OR [ALL] literal-1 lit-2
INTO {id-4 [DELIMITER IN id-5]
[COUNT IN id-6]}
[WITH POINTER id-7]
[TALLYING IN id-8]
[ON OVERFLOW imperative-statement-1]
[NOT ON OVERFLOW imper-2]
[END-UNSTRING]
59 messaggi dal 21 luglio 2006
Ciao Gino,
ho seguito il tuo consiglio è funziona perfettamente, ma è possibile che il suddetto codice resti in attesa finchè non sia completata l'installazione di SQL Server. Qualche suggerimento sul codice?
Grazie
Giorgio

Giorgio
135 messaggi dal 01 febbraio 2017
L'uso di START renede il comando asincrono, quindi non c'è attesa, ma hai la piena compatibilità con qualunque OS, per avere l'attesa devi lanciarlo senza lo START, ma non è detto che funzioni sui vari OS. Ovviamnete sempre usando il file BAT, in quanto il codice .NET che usi per lanciarlo, si apsetta un BAT o un EXE (o qualunque comando power shell). Ti consiglio a tal fine una lettura di questo ultimo ambiente in quanto molto potente, e funzionando ad oggetti, ti permette di fare qualunque cosa con il sistema operativo e nn solo.

Facci sapere.
Ciao.
Gino.

UNSTRING identifier-1 id-2 id-3
DELIMITED BY [ALL] OR [ALL] literal-1 lit-2
INTO {id-4 [DELIMITER IN id-5]
[COUNT IN id-6]}
[WITH POINTER id-7]
[TALLYING IN id-8]
[ON OVERFLOW imperative-statement-1]
[NOT ON OVERFLOW imper-2]
[END-UNSTRING]

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.