Installshield sau Wix [închis] (Programare, Wix, Installshield 2010)

Thurein a intrebat.

Am o aplicație web destul de mare dezvoltată folosind asp.net 3.5 și trebuie să pregătesc un pachet de instalare care va fi folosit pentru a implementa aplicația pe IIS 6 și 7. Am făcut multe cercetări despre Wix și Installsheild 2010 (pro) și am nevoie de un sfat înainte de a lua o decizie. Am observat că installsheild este destul de costisitor în ceea ce privește licența, dar pentru mine am un buget suficient, așa că nu va fi o problemă. programul de instalare ar trebui să fie capabil să efectueze următoarele procese.

  • Implementează resursa web publicată (aspx etc.).

  • Crearea unui director virtual.

  • Crearea bazei de date pe serverul sql și rularea unor scripturi de inițializare.

  • Modificarea fișierelor XML și a fișierelor web.config.

  • Setați permisiunea de a permite scrierea în fișierele din directorul virtual.

Am constatat că ambele tehnologii sunt capabile să realizeze scenariile de mai sus, dar aș dori să obțin experiență personală și sfaturi.

4 răspunsuri
user243966

Pe baza experienței mele cu Wix și InstallShield, aș recomanda să folosiți InstallShield, cu excepția cazului în care aveți nevoie de un program de instalare destul de simplu și simplu. Spun acest lucru deoarece curba de învățare uriașă a Wix este făcută și mai dificilă de lipsa de informații disponibile

Nu există cărți despre Wix, așa că resursele tale se limitează la tutorialul Wix, care este detaliat și lung, dar totuși nu acoperă prea mult dincolo de elementele de bază, și postările de pe blog pe care le găsiți prin Google. De acord, există multe postări bune pe blog care detaliază modul de realizare a unor lucruri specifice, dar, dacă nu aveți termene de respectat, probabil că nu vă puteți permite să stați și să cercetați cum să faceți lucruri specifice în Wix zile întregi. Personal, m-am trezit făcând acest lucru mult prea mult pentru ca Wix să fie o soluție fezabilă (din nou, cu excepția cazului în care aveți nevoie doar de un instalator simplu)

În cele din urmă, în cazul meu, aveam instalatori existenți care au fost dezvoltați cu InstallShield și pur și simplu reușim să fim mai productivi mai repede cu acesta. InstallShield are, de asemenea, propriul său limbaj de scripting care are și o documentație destul de bună.

Un alt mare plus pentru mine a fost faptul că InstallShield ușurează durerea legată de instanțe multiple (încercați să căutați cum să faceți acest lucru cu Wix și veți avea o idee despre ce spun) și de actualizări/parametrări. Am reușit să le realizez pe amândouă (mai ales instanțele multiple) într-un fracțiune de timp cu InstallShield față de ceea ce a durat să realizez în Wix.

Sfatul meu ar fi să alegeți în funcție de constrângerile de timp/ termenele/angajamentele dumneavoastră, de complexitatea programului de instalare și de maturitatea produsului dumneavoastră. Wix necesită MULTĂ cercetare pentru lucruri pe care InstallShield oferă o modalitate destul de rapidă de a le face. Acest lucru poate fi și mai dureros dacă aveți un produs matur față de un produs destul de tânăr.

Sper că acest lucru vă ajută.

Comentarii

  • Da, acest lucru este corect, vreau să spun, sunt un amator de Wix și îl folosesc de ceva timp, dar uneori este destul de dificil enigmatic și durează ceva timp pentru a finaliza unele sarcini de bază, mai ales dacă nu ai cunoștințe practice. –  > Por Thurein.
  • JustinPinkley, pentru instanțele multiple te-ai uitat la elementul Instance din documentația WiX? Sunt foarte ușor de utilizat. De asemenea, WiX v3.5 are un nou element MajorUpgrade care face ca actualizările să fie făcute cu o singură linie. De asemenea, patching-ul este foarte ușor de utilizat în setul de instrumente WiX. Totul este documentat într-o singură pagină din documentația WiX (o puteți găsi căutând „patching”). –  > Por Rob Mensching.
  • Da, de fapt, am folosit elementul Instance și am 3 instanțe disponibile pentru a fi instalate. Problema nu constă în capacitatea Wix de a implementa instanțe, ci în timpul care mi-a luat să găsesc o documentație suficient de amănunțită pentru a implementa suficient de bine instanțele. Fișierul de ajutor lipsește cu siguranță acolo. MajorUpgrade-ul a fost într-adevăr destul de simplu, dar upgrade-urile minore sunt un pic mai complicate, ceea ce este bine, dar necesită mai mult timp de căutare pentru a afla cum se implementează. Știu că Wix este puternic, dar lipsa unei documentații detaliate este probabil ceea ce va împiedica mai multe magazine să îl utilizeze. – utilizator243966
  • Corecție, există câteva cărți despre WiX. Am pe birou amazon.com/WiX-Developers-Guide-Windows-Installer/dp/1849513724 🙂 –  > Por saschabeaumont.
  • Acest răspuns a fost foarte bine gândit de noi pentru acea vreme, dar acum este foarte inexact în ceea ce privește Wix. Wix are acum multe cărți și și o întreagă companie în spate: firegiant.com Ei oferă consultanță și îndrumare, și chiar vă vor scrie instalatorii pentru dvs. Notă, nu lucrez pentru ei și nici nu am vreo afiliere, am vrut doar să subliniez suportul mai matur oferit acum. –  > Por cmaynard.
Samuel Jack

După ce am creat un instalator Wix pentru a face exact ceea ce căutați să faceți, vi-l recomand cu plăcere.

Avantajele lui Wix față de InstallShield, așa cum le văd eu:

  1. Deoarece Wix este gratuit, toată lumea din echipa dvs. îl poate instala și, prin urmare, toată lumea poate contribui la programul de instalare. Dacă un dezvoltator adaugă o bibliotecă la proiect, acesta poate actualiza programul de instalare în mod corespunzător, fără a aștepta ca „tipul de la instalare” să își facă treaba.
  2. Nu există probleme cu instalarea Wix pe un server de compilare, ceea ce îl face potrivit pentru un mediu în care folosiți integrarea continuă. Se integrează foarte bine cu MSBuild (a se vedea proiectul Votive).
  3. Instalatoarele Wix sunt construite din fișiere text, ceea ce le face foarte ușor de controlat versiunile.
  4. Wix include Deployment Tools Foundation (DTF), ceea ce face foarte ușoară crearea de acțiuni personalizate folosind cod .Net.
  5. Wix este aproape de metal: de obicei, puteți aplica cunoștințele dumneavoastră despre Windows Installer destul de direct la Wix. Dimpotrivă, învățarea Wix vă învață multe despre Windows Installer, ceea ce este întotdeauna bine atunci când vine vorba de a oferi suport pentru implementări.

Pentru a echilibra acest lucru, există câteva lucruri de care trebuie să fiți conștienți:

  1. Wix are o curbă de învățare abruptă. Dacă nu ați făcut-o deja, verificați pagina tutorialul WiX.
  2. WiX nu este un mediu „vizual” precum InstallShield – de obicei este vorba de text și xml până la capăt. Acestea fiind spuse, există editoare, gratuit și comerciale.
  3. În special în ceea ce privește configurările IIS: Wix 3.0 funcționează numai cu API-urile metabazei IIS 6. Pentru a instala pe IIS 7, va trebui să activați API-ul Funcția Metabase Compatibility pe serverul țintă. Suportul complet pentru IIS 7 va fi disponibil în Wix 3.5 – am încercat versiunea beta a acesteia și pare să funcționeze bine până acum.

Comentarii

  • Da, este adevărat, programul meu de instalare Wix (3.0) nu funcționează cu IIS 7, dar conducerea mea nu vrea să folosească versiunea 3.5, deoarece este încă o versiune beta. De asemenea, sunt îngrijorați de curba de învățare abruptă. –  > Por Thurein.
  • Dar, cu siguranță, Install shield ar putea accelera timpul de dezvoltare, presupun. –  > Por Thurein.
Christopher Painter

Pentru a aborda punctele de mai sus ale lui Samuel….

  1. Am creat un proiect pe CodePlex care se numește IsWiX și care abordează problema democratizării. Îl utilizați cu WiX pentru a crea module de fuziune și apoi consumați modulele de fuziune cu InstallShield pentru a obține cele mai bune din ambele lumi. Acest lucru permite unui tip care se ocupă de configurare să folosească InstallShield și zeci de dezvoltatori ai mei să folosească IsWiX/WiX. XML-ul poate fi în continuare marcat cu metadate suplimentare, astfel încât nu suntem restricționați în ceea ce pot descrie modulele.

  2. InstallShield are un motor de construcție autonom care se integrează cu MSBuild/TFS și oferă o interfață de automatizare. Aici nu există niciun avantaj pentru WiX.

  3. InstallShield este, de asemenea, un fișier text. Este un format DTD mai urât, dar IsWiX rezolvă această problemă prin abstractizarea porțiunilor care se schimbă frecvent de porțiunea care se schimbă rar din programul de instalare.

  4. Încurajez foarte mult utilizarea DTF cu InstallShield. La urma urmei, o funcție exportată de tip 1 este aceeași pentru orice instrument bazat pe MSI.

  5. InstallShield are un editor direct care vă arată tabelele de bază. Acest lucru este de fapt mai aproape de metal decât WiX, care folosește un DSL bazat pe XSD pentru a produce metalul.În concluzie, există lucruri foarte bune la WiX ȘI InstallShield, iar eu le folosesc împreună pentru a crea instalatori extrem de complecși.

PS- IsWiX s-a gândit mult la hashing și sortare pentru a rezolva problemele de îmbinare a ramurilor. ( Folosim Base Clearcase pe zeci de ramuri, așa că acest lucru a fost foarte important pentru noi. )

Comentarii

  • mulțumim pentru asta. Nefolosind niciodată InstallShield, nu aveam de gând să pot oferi un punct de vedere echilibrat! –  > Por Samuel Jack.
Yan Sklyarenko

+1 la răspunsul lui Samuel. În ceea ce privește curba de învățare abruptă… dacă nu înțelegeți modul în care funcționează tehnologia de bază (Windows Installer), veți avea probleme cu suportul instalării, fie că alegeți InstallShield sau WiX. Dar WiX vă încurajează să învățați Windows Installer pentru a utiliza corect abstracțiile WiX.

Personal, mi-am început proiectul de instalare (o aplicație web uriașă) cu InstallShield, dar am trecut recent la WiX și sunt mulțumit de acest lucru. Punctele cheie ale alegerii mele:

  • este gratuit
  • este XML (nu mai este dureros să difuzezi și să fuzionezi)
  • este prietenos cu NAnt
  • face exact ceea ce i se cere să facă (nici mai mult, nici mai puțin)

Sper că aceste informații vă sunt utile.

Comentarii

  • Vă mulțumim pentru contribuția dumneavoastră. Ce ziceți de upgrade și patch-uri? Am creat un instalator folosind wix și a mers bine, dar nu am încercat niciodată actualizarea versiunii și patch-uri prin utilizarea wix. Sunt îngrijorat că aș putea avea unele capcane cu procesul de upgrade și patching. –  > Por Thurein.
  • Puteți face tot felul de actualizări MSI cu WiX și dispune de instrumentele necesare pentru a produce și patch-uri. Totul este acolo, nu sunt necesare instrumente/scripturi suplimentare. Singurul lucru care nu este acoperit este încorporarea transformărilor. S-ar putea să vă confruntați cu acest lucru atunci când vă localizați programul de instalare și încorporați transformări de limbă în el. Dar există msidb.exe în Windows Installer SDK care rezolvă problema. De asemenea, îmi amintesc că cineva a făcut referire la un script care face același lucru… –  > Por Yan Sklyarenko.