Domanda

Vorrei evitare di ridistribuire il runtime .NET, se possibile, con la mia applicazione poiché aumenterà le dimensioni dell'applicazione, il tempo di download, il tempo di sviluppo & amp; introdurrà probabilmente molti diversi errori di distribuzione. Microsoft impone agli utenti di aggiornare .NET runtime tramite Windows Update? In caso contrario, quali sono alcune delle opzioni per ridistribuire il runtime .NET? Microsoft ha reso più facile ridistribuire il runtime con le applicazioni .NET? Inoltre, il runtime .NET è garantito per essere retrocompatibile?

Sto solo sintetizzando le risposte qui. Sembra che dobbiamo avere un bootstrapper per almeno verificare l'esistenza del tempo di esecuzione di .NET. L'opzione alternativa è quella di impacchettare il runtime e distribuirlo se non esiste. Ci sono più opzioni per il packaging dell'amplificatore &; Visual Studio offre un'opzione per creare un progetto di installazione con il runtime. Ci sono anche altre opzioni di packaging come InnoSetup, WIX ecc. (Non sono sicuro quale sia l'opzione migliore e gratuita). L'installazione di runtime richiede un riavvio e l'opzione di installazione scelta dovrebbe riprendere l'installazione dopo il riavvio.

È stato utile?

Soluzione

Inoltre, dovresti preoccupartene. Senza il runtime, l'applicazione non funzionerà misteriosamente. Non si deve mai supporre che una determinata versione del runtime sia preinstallata.

Come notato sopra, la procedura guidata del progetto di installazione in VS creerà un file di installazione che lo scaricherà solo se necessario. NSIS e Inno Setup hanno script che faranno la stessa cosa. Si noti che sarà necessario gestire il riavvio e continuare l'installazione durante l'installazione del runtime. Credo che la procedura guidata di installazione gestisca questo per te.

Altri suggerimenti

Crea un progetto Windows Installer. Dovresti avere questo come opzione in VS2005 e VS2008. Durante l'installazione dell'applicazione assicurerà che il sistema abbia il runtime .NET e qualsiasi altro software richiesto. Questo lo aggiungerà al pacchetto di installazione, non all'applicazione. Di solito è così che installi le tue applicazioni o usi Install Shield.

Ecco una guida .

alt text http://img154.imageshack.us/img154/2066/newprojectr .png

Quando crei il tuo pacchetto di installazione, installerà il runtime solo se richiesto. cioè non già sul sistema (o versione errata)

Modifica: Sì, dovresti creare questo pacchetto, ti semplifica la vita per questa cosa esatta. Il modo in cui lo faresti in VS è File - & Gt; Project e seleziona intstaller project. La procedura guidata ti guiderà attraverso le opzioni.

Usando un bootstrapper di qualche tipo, puoi controllare se .NET è installato e poi scaricarlo se necessario.

Ad esempio, con il MSI Factory bootstrapper (non sto sostenendo MSI Factory, è un brutto programma, ma il bootstrapper che ne deriva vale da solo il costo della licenza se stai sviluppando software commerciale come noi) ci sono degli script che puoi semplicemente includere per eseguire questa funzione. Stiamo usando WiX + il bootstrapper MSI Factory per distribuire sia un singolo EXE compresso (30 Mb), sia un piccolo quot; downloader & Quot; EXE che scarica un MSI. Entrambi EXE controllano la presenza di .NET 2.0 e quindi lo scaricano se necessario. Distribuiamo anche un MSI autonomo che controlla anche .NET e blocca l'installazione se non è presente.

Fondamentalmente hai il seguente:

  • Windows XP: non viene fornito con .NET. Il cliente deve installarlo manualmente (appare come un componente opzionale di Windows Update)
  • Vista: viene fornito con .NET 2.0 (ma non 1.1)
  • Server 2003 - fornito con .NET 1.1

Ignora .NET 1.1, ignoralo e basta. Gli utenti di Vista e oltre lo installeranno solo per il supporto di applicazioni legacy o se sono sviluppatori.

.NET 2.0 è la versione più comunemente installata, dalla nostra base di utenti abbiamo scoperto che meno del 10% degli utenti ha installato .NET 3.5. Se la tua applicazione è indirizzata a un pubblico tecnico e geek, direi che circa il 50% delle persone avrà .NET 3.0. Se ti rivolgi a un mercato consumer / retail / non tecnologico, puoi probabilmente stimare circa il 30% con .NET 2.0 e il 10% con .NET 3.0 o versioni successive.

Le cifre sopra riportate si basano sul traffico del browser verso i nostri siti Web, un pubblico prevalentemente non tecnico. Questo è probabilmente il modo migliore per farsi un'idea per il tuo mercato. IE riporta sempre la versione .NET nella stringa User-agent, quindi suddividere i blog e iniziare l'analisi :)

Dipende. Dove lavoro, lo includiamo nell'installer come prerequisito perché abbiamo alcuni clienti che potrebbero non disporre di una connessione Internet per scaricare il runtime.

Alcune cose che puoi fare:

  1. Includi un test per la versione di .NET sul computer di destinazione ed esci dall'installazione se non è presente.
  2. Crea una versione dell'installazione che includa il runtime .NET e lo installerà se necessario.
  3. Crea una versione dell'installazione che scaricherà il runtime .NET e lo installerà se necessario.

Se sapessi che i miei clienti erano tutti online, farei l'opzione 3 per .NET e qualsiasi altro prerequisito come Crystal Reports o SQL Express. Ho installazioni in cui ho incluso quella e l'installazione è superiore a 100 MB. 70 MB + sono i prerequisiti.

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