Domanda

Ho creato un progetto di installazione in VS2008. La mia app WinForms utilizza .NET 2.0, quindi ho scelto .NET 2.0 Prerequisiti e ho creato il progetto di installazione.

Quando eseguo Setup.msi su un PC pulito, rileva correttamente che .NET è mancante e chiede se deve essere installato. Dopo una corretta installazione di .NET, il programma di installazione semplicemente esce e non continua con l'installazione della mia app (penso che dovrebbe).

Quando eseguo il file MSI su un PC con .NET già installato, la mia app si installa correttamente.

Esiste un modo per installare .NET 2.0 e la mia app insieme in un solo passaggio?

È stato utile?

Soluzione

Come hai installato il prodotto?

Il progetto di installazione produrrà due file:

  • un pacchetto di Windows Installer (.msi) e
  • un cosiddetto bootstrapper (setup.exe)

Il bootstrapper verificherà la presenza di tutti i prerequisiti specificati e possibilmente lo scaricherà e lo installerà se non è ancora installato e quindi continuerà a installare l'applicazione (chiamando il .msi ). Pertanto, è necessario avviare sempre setup.exe per installare l'applicazione e non il file .msi (a meno che non si sappia che tutti i prerequisiti sono nel sistema di destinazione).

Come dice Krakkos, il bootstrapper installa sia i prerequisiti sia la tua applicazione (cioè il tuo file .msi). Tuttavia, non sono a conoscenza di alcuna impostazione di configurazione che impedirebbe al bootstrapper di installare l'MSI.

Per risolvere i problemi, puoi provare a creare un registro dell'installazione e cercare eventuali problemi nel file di registro.

Altri suggerimenti

Grazie Divo,

Stavo eseguendo il file MSI.

Ci sono delle limitazioni quando si esegue il file Setup.EXE? Se ricordo correttamente, ho provato una volta a eseguirlo su Windows 2000 e non è stato eseguito. Sono stato in grado di eseguire solo il file MSI. Ho intenzione di controllare su un PC con Win2000 pulito e tornare.

EDIT: l'ho provato su Windows 2000 SP4 pulito e qui ci sono i risultati:

  • Setup.exe non verrà eseguito con un messaggio sulla mancanza di HeapSetInformation in Kernel32.dll
  • Setup.msi non funzionerà (l'estensione .msi è sconosciuta)

Quindi ho installato manualmente Windows Installer 3.1:

  • Setup.exe non funzionerà ancora con lo stesso messaggio di errore
  • Setup.msi funzionerà correttamente (ma installerà solo .NET senza la mia app ... il mio problema iniziale)

Su Windows XP, Setup.exe viene eseguito senza problemi.

Sembra che gli utenti con Win2000 dovranno installare manualmente la mia app installando Windows Installer 3.1, .NET 2.0 e quindi la mia app. Anche quando .NET viene installato manualmente, Setup.exe mostrerà sempre lo stesso messaggio di errore in Win2000 SP4.

EDIT: il problema di Win 2000 può essere risolto installando Aggiornamento cumulativo 1 per Windows 2000 SP4 (KB891861) .

Questo episodio di Hanselminutes fornisce dettagli dettagliati su come Paint.Net organizza il download e l'amplificazione installazione del framework .NET richiesto su richiesta e integrazione con l'installazione dell'applicazione. È vero che questo è probabilmente molto più complesso di quanto la maggior parte delle applicazioni richieda, ma è comunque una discussione interessante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top