Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision

Acesta este, probabil, cel mai dureros subiect atunci când încearcă să-și răspândească descendenții pe Internet. Există un număr mare de instalatori plătiți, pe care nu i-am considerat pachetele viitoare. Ele merită foarte mult, dar și pentru a simți și de la liber. Pirateria este rea 🙂.

Există, de asemenea, în stilul expertul - efectuând mai multe acțiuni în ordine, aveți un instalator gata. Există, de asemenea, script-uri complet, tot codul ar trebui să fie scris de mână: există Inno, există NSIS. Dar m-am dus în altă parte. Ajutați-vă în sălbăticie de orice lucru incomprehensibil XML și WiX.

În acest articol voi omite o mulțime de detalii cu privire la ceea ce și pentru ceea ce este destinat. Acest lucru poate fi citit atât pe pagina oficială a proiectului WiX, cât și pe forum. Accentul va fi pus pe lucrurile esențiale care necesită justificare pentru creație.

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision

Fereastra Solidworks cu addon de testare instalat

Se presupune că WiX este instalat și șablonul său este disponibil în VS.

Adăugăm proiectul de instalare viitoare la soluția: File-Add-Create Project. În meniu, selectați Windows Installer XML - Setup Project. Introduceți numele programului de instalare viitoare și faceți clic pe OK.

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision
Vedem ceva de genul:

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision
Vom aborda configurarea după toate regulile. Da, pentru ca mai tarziu sa nu te pierzi in toate aceste linii. Mai întâi, adăugați mai multe fișiere: PCM pentru proiectul Setup - Add - Create item. Rețineți că adăugăm 2 fișiere Verifications.wxs și Files.wxs care sunt "Fișierele de instalare" și un fișier Variables.wxi care este "Include fișiere". Să înțelegem în detaliu.

Files.wxs - aceasta va stoca informații despre toate fișierele care vor fi incluse în proiectul de instalare.

Product.wxs - de fapt, descrierea instalatorului.

Variables.wxi - lista variabilelor proiectului. Acest lucru este necesar pentru a utiliza aceleași valori (numele proiectului, versiunea, calea către fișierul principal) peste tot prin codul de instalare.

Verifications.wxs - verificările necesare pentru instalare (versiunea NET Framework, dacă este instalat Solidworks).

De asemenea, vom adăuga biblioteci

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision

Unii ar putea să nu fie folositori acum, ci doar să știe unde sunt. De exemplu, pentru a crea o casetă de dialog proprie (de exemplu, introducerea datelor de utilizator sau a altor date de înregistrare), va fi necesară biblioteca WixUIExtension.dll. Este livrată standard, dar nu este adăugată în mod implicit.

Deoarece lucrăm într-o singură soluție, vom adăuga fișierul de ieșire din proiectul TestInstall. Pentru a face acest lucru, faceți clic pe "Referențe" pe Referențe, selectați fila "Proiecte" și selectați TestInstall - același proiect cu add-on la Solidworks.

Să trecem la codificarea directă.

În fișierul Variabile, ștergeți toate liniile și lipiți următoarele:

În final, vom intra în proprietățile proiectului și vom expune limba implicită:

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision

și exclude afișarea unor erori în timpul compilației (ICE20; ICE57)

Crearea unui program de instalare pentru un addon folosind studioul vizual și wix, streamdivision

9 gânduri despre "Crearea unui program de instalare pentru add-on utilizând Visual Studio și WiX. "

Mulțumesc. Aplicația de testare funcționează, dar nu funcționează cu cea curentă. Ceva este în neregulă în fișierul de cap - atunci când instalați programul de instalare nu funcționează normal înregistrarea. Toate elementele active (butoane) ale add-on-ului sunt vizibile, dar inactive. Dacă setați apoi regasmul pe biblioteca instalată cu mânere, atunci totul devine mai bun ...

În a doua zi, căut unde este îngropat câinele, până am găsit 🙂

căldură - NU! )))
Acesta este un fel de colector de date pe fișierul de completare la care a fost infectat. Înregistrarea addon - este de fapt înregistrarea interfețelor necesare în registru + informații suplimentare.
Este probabil ca în proiectul de lucru să se genereze ceva de-a lungul drumului. Apoi instalatorul pur și simplu nu poate ști despre asta în avans. Aceasta este o opțiune. Altă este că într-un fel fișierul de căldură a fost generat. Ei bine, al treilea - acoperiți ansamblul cu un protector. În cazul ultimului caz, faceți mai întâi un fișier cu căldură din versiunea obișnuită, scrieți aceste date în programul de instalare și apoi acoperiți-l.

Și, deși oprirea "Toate elementele active (butoane) add-on sunt vizibile, dar inactive". - Acesta este un caz tipic în cazul în care codul interior scade fără a arunca o eroare pentru utilizator sub forma unui MessageBox. Sfatul este de a împacheta zonele critice în încercarea de a prinde cu captura ca aceasta:

Nu, curățenia nu ajută, curentul se înrăutățește. Poate că trebuie să adăugați comutatorul -svb6. După aceasta, apare o descriere a acestei clase. Cu toate acestea, în registru, HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ adaugă căi către locația fișierului sursă (în depanare), nu cea pe care instalatorul a postat-o ​​în C: \ Program Files
Un apel manual de regax face ca noi chei să aibă calea corectă a fișierului.

Dar deja totul, ochii sunt închise ... mâine ...

PS.
Apropo, acest lucru nu este un ActiveX abstract pe care m-am gândit să o fac, ci un panou care este încorporat în paleta potrivită de panouri solide (unde sunt texturi, vederi externe, set de instrumente etc.). Barele de instrumente de deasupra nu sunt întotdeauna convenabile, iar aici există o mulțime de spațiu ...

Nu, și nu în afaceri. Nu am putut gasi ce regasm a adaugat, ce caldura nu se uita chiar la fisierul reg care se obtine dupa ce a sunat la primul. Ambalat și înregistrat CustomAction pentru un apel manual de regasm. Deci - totul se încarcă.

Articole similare