2010-09-29 8 views
10

Possiedo Visual C# 2008 Professional e ho sviluppato la prima metà di un'applicazione C# (modalità console) con la seconda metà in corso ora (GUI).Qualcuno può fornire una buona "guida idiota" alla creazione di un programma di installazione in VS2008 (C#) Pro?

Sto cercando un percorso semplice per la creazione di un programma di installazione per esso. Quali sono i passaggi da seguire per produrre un installatore professionista?

C'è una domanda simile here per quanto riguarda l'edizione Express, ma ho Pro, e vorrei il più possibile a bastone con solo lo standard VS cose (se pensate che mi può convincere che un installatore creatore terzo è molto più di una soluzione solo-VS, dargli una possibilità, a tutti i costi).

Ricordare che non ho ancora alcun interesse per l'aggiornamento a VS2010, anche se è cento volte più facile creare un programma di installazione. Questo può venire dopo, quando le entrate cominciano a circolare :-)

Inoltre, si noti che il componente GUI di questa applicazione è un eseguibile completamente separato dalla parte della console. La parte della console è un semplice "file aperto 1, fai un lavoro su di esso, scrivi il file 2" e la GUI è un normale "file aperto, fai un po 'di roba", quindi non si verificano comportamenti complicati o selvaggiamente privi di documenti.

Fondamentalmente, io sto cercando (almeno) le seguenti: installazione cercando

  • professionale.
  • possibilità di specificare dove i file dell'applicazione vanno.
  • modifiche al Registro di sistema per consentire doppio clic sulla mia estensione di file per aprire l'app GUI con il file come argomento.
  • deve installare tutto ciò che è necessario per il numero (il mio materiale, .Net se necessario, e così via).
+0

Ho avuto problemi con l'installazione di default VS. Per quanto posso ricordare, ha sempre cercato di mettere i file in qualche misteriosa sottodirectory di Common Files con un nome folle, piuttosto che Program Files, ed era anche difficile da personalizzare (per me, comunque). Ho optato per Inno Setup e ha funzionato in modo sorprendente. –

risposta

9

Un'altra opzione sta usando Inno Setup. Ti permette di personalizzare completamente le installazioni, dove incollare i file sulla macchina di destinazione, modificare il registro e tutto quel jazz. Se sei disposto a dedicare un po 'più di tempo a imparare un po' lo scripting necessario per ottenere i risultati che desideri, è uno strumento molto potente. (soddisfa tutte le vostre esigenze e molto altro) E, soprattutto, è gratis =)

Ho utilizzato Inno Setup per tutti i miei programmi .NET più grandi. Quando viene eseguito il programma di installazione, controlla se .NET è installato e in caso contrario lo scarica e lo installa. Inoltre, ho modificato il registro e creato associazioni con le estensioni come hai menzionato. Anche l'integrazione delle DLL con l'installer è semplice - Inno raggrupperà tutti i file richiesti in un unico file eseguibile che si occuperà di tutto.

Inoltre, dal momento che Inno è in giro dal 1997, un numero di editors have arisen che aiuta a rendere il processo di scripting molto più semplice.

+0

Upvote per Inno, ha funzionato in modo eccellente per il mio progetto dopo aver riscontrato problemi con il progetto di installazione VS. –

0

Visual Studio 2008 ha il supporto di installazione/installazione integrato.

Aggiungere un nuovo progetto alla soluzione e selezionare l'opzione "Progetto di installazione" dalla categoria "Altri tipi di progetto> Installazione e distribuzione".

Dai un'occhiata alla Windows Installer Deployment overview, e a step-by-step walkthrough

+0

È davvero molto brutto. Ho usato i progetti di installazione VS e hanno diversi problemi che mi hanno fatto passare a InnoSetup che ha funzionato perfettamente per me. Scusa se non riesco a ricordare esattamente i problemi in questo momento. –

+0

Dal tuo commento sulla domanda originale ("ha sempre cercato di mettere i file in qualche misteriosa sottodirectory di Common Files con un nome pazzo"), non posso fare a meno di chiedermi se stai pensando a ClickOnce? Mentre i progetti di installazione VS non sono così personalizzabili come, ad esempio, un programma di installazione WiX, è un po 'difficile definirlo "veramente, veramente cattivo". Hai abbastanza controllo per fare tutto ciò che la domanda richiede, ed è bello e amichevole per chi è nuovo all'installazione/distribuzione :) – MatthewKing

+0

Per il più grande problema con i progetti di VS Installer è che non puoi eseguirli da MSBuild - se vuoi costruiscile su una macchina di compilazione, quella macchina deve avere un'installazione VS completa e devi chiedere a VS, molto gentilmente, se sarebbe disposta a costruire il progetto di installazione per te. –

23

Questo potrebbe essere un po 'più rant della risposta, ma qui va.

Se c'è una cosa gravemente rotta con il software client di Windows, è la distribuzione delle applicazioni.

La mia esperienza deriva dal lavorare su NovaMind - Anche se ho passato settimane nel corso degli anni sui problemi di installazione, Sono affatto un esperto di tecnologia di installazione e cercare di concentrarsi sul nostro prodotto reale ogni volta possibile. Abbiamo utilizzato InnoSetup, Visual Studio Setup Project 2008/2010 e infine siamo passati all'approccio WiX + Tools.

Come si installa un'applicazione al giorno d'oggi?

Web App: immettere un URL in un browser per accedere a un'app Web.

Mac: Trascinare il file scaricato (lo stesso per x64 e x86) sull'icona Applicazioni sul Mac. Fatto.

Windows: Scaricare il file corretto (l'utente deve conoscere l'architettura x64 e x86), eseguirlo. Fai clic su "Avanti" una dozzina di volte, attendi che venga visualizzato l'UAC, fai clic su Sì e poi sperare che l'installazione abbia fatto la cosa giusta.

Penso che se Windows avesse un sistema di distribuzione migliore, un marketplace/app store sano e una funzionalità di aggiornamento in tempo reale, le app web potrebbero non essere mai diventate così popolari in primo luogo. Ovviamente è un'esagerazione, ma credo che l'ecosistema delle applicazioni Windows sia stato danneggiato da un sacco di danni non fornendo un modello di implementazione valido e utilizzabile e anche ora Microsoft sembra prestare poca attenzione a questo problema.

Come si aggiornano le applicazioni al giorno d'oggi?

Web App: Non necessario. È aggiornato.

Mac: Nessuna magia incorporata, ma esiste una soluzione ampiamente utilizzata e potente denominata Sparkle.

Windows: Faresti meglio a rotolare da solo perché non c'è nulla di sostanziale là fuori.

ClickOnce avrebbe dovuto cambiare tutto questo ma non è riuscito a essere utilizzabile per applicazioni commerciali reali.

Ecco la carrellata:

InnoSetup e altre installazioni di script basato sono semplici ma non può produrre un file con estensione msi — Alcune aziende richiedono i file con estensione msi per automatizzare implementazioni di rete. Sarà inoltre necessario disporre di un'installazione basata su Windows Installer (.msi) se si desidera ottenere la certificazione del logo Windows.

installazione di Visual Studio Progetto 2008/2010 ti dà le basi facilmente e si può configurare un mucchio di cose, ma una volta che si vuole fare l'impensabile, come use a high quality icon o includere un changing set of files nell'installazione, sei fregato.Abbiamo anche dovuto correggere manualmente PackageCode e ProductCode ogni volta che abbiamo compilato un aggiornamento poiché Visual Studio è riuscito a rovinare in qualche modo le versioni dell'assembly e lascerebbe un assembly più vecchio durante l'aggiornamento, corrompendo l'applicazione.

WiX è il modo de facto per creare configurazioni su Windows e anche il programma di installazione di Microsoft Office è stato creato con WiX. WiX non è semplice. Ci sono libri disponibili per WiX!

Sfortunatamente, il WiX da solo non è ancora una buona soluzione. Usiamo il dotNetInstaller bootstrapper project per assicurare che .NET Framework sia installato e per avvolgere il file .msi e il bootstrapper in un singolo file .exe che le persone possono scaricare.

Con tutto questo si sta quasi bene. Ci sono sempre strani casi in cui i clienti non hanno installato Windows Installer (e quindi non possono eseguire il file .msi incorporato) o dove l'installazione di .NET Framework non riesce.

cose che non abbiamo potuto fare finora:

  • Localizzazione nostro programma di installazione!
  • Fornisce un singolo download per x64 e x86 - al momento creiamo solo un programma di installazione x86 perché non vogliamo che i nostri utenti pensino a x64 rispetto a x86.
  • Dispone di un'interfaccia utente di installazione che funziona anche con impostazioni DPI elevate. Penso che questo potrebbe essere solo una cosa che non è supportata nell'installazione di MSI.

C'è un prodotto gratuito chiamato SharpSetup che sembra risolvere alcuni di questi problemi e consente di scrivere un WinForms interfaccia utente basata, ma SharpSetup non viene fornito con un programma di avvio automatico e richiede il .NET Framework - tuttavia è possibile scrivere il tuo codice C++ per reagire in questa situazione.

Per gli aggiornamenti in tempo reale abbiamo implementato la nostra soluzione e dopo molti problemi funziona correttamente.

Si potrebbe anche voler ascoltare Scott Hanselman’s podcast episode with Rick Brewster se parlavano della configurazione e della distribuzione di Paint.NET - Mentre mi congratulo con Rick e il team di Paint.NET sul loro buon setup, la necessità di una soluzione così complessa mi rattrista.

Se è assolutamente necessario utilizzare .msi, allora consiglio WiX a chiunque voglia creare un programma di installazione su Windows, ma alla fine sono estremamente frustrato dalla situazione di distribuzione su Windows. Ho sprecato settimane del mio tempo nel corso degli anni con problemi di setup stupidi. Con l'installazione puoi solo perdere. Non vincerai nessun cliente felice perché la tua configurazione funziona ma perderesti e frustrerai molti di loro, se così non fosse.

+0

Potrebbe essere più rant della risposta, ma posso prendere il rant poiché il bit di risposta è ancora utile :-) – paxdiablo

+0

:) Vorrei davvero che ci sarebbe un modo migliore che 'funziona solo' ... –

+3

+1 per un rant costruttivo – AndyPerfect

5

Io uso Advanced Installer, è morto semplicemente, e io lo uso, a causa delle limitazioni di VS.

http://www.advancedinstaller.com/

Il "lato negativo" è che per l'installazione completamente automatica delle dipendenze si deve pagare ;-)

0

Se si conosce linguaggi di scripting è possibile controllare NSIS come alternativa alla VS. C'è abbastanza documentazione che è possibile copiare incollare il loro programma di installazione di esempio e sostituire i percorsi dei file con il proprio.

1

Se si desidera creare completamente il programma di installazione in Visual Studio, ma non importa usare strumenti esterni per aiutarvi in ​​quel lavoro, date un'occhiata a un mio programma chiamato SharpSetup. Ti permette di costruire GUI usando C#/WinForms, mentre backend è basato su WiX (che a sua volta significa usare WIndows Installer).

-1

Mentre non sono esperto di installazione, ho usato Wix con successo. È complicato per non dire altro.

Non vedo nessuno di questi prodotti menzionato che abbia visto i client utilizzare con successo.

http://www.installaware.com/ http://www.flexerasoftware.com/products/installshield.htm http://www.wise.com/Products/Installations/WiseInstallationStudio.aspx

Tutti fornire la localizzazione, file/app per associazione doppio click, il bootstrap quadro e percorso di destinazione al meglio delle mie conoscenze . InstallAware e Wise forniscono una qualche forma di supporto per l'aggiornamento automatico.

Problemi correlati