Verzeichnis-Aliase
Die Fragment der Component-Gruppe brauchen nichts über Verzeichnisse zu wissen, die im Hauptprodukt wxs definiert sind. In Ihrem Component-Gruppen-Fragment können Sie über einen Ordner so sprechen:
...
Dann kann das Hauptprodukt einen seiner Verzeichnisse (z.B. "productInstallFolder") so benennen:
Abhängigkeitsgraph
ComponentGroup-Elemente können ComponentGroupRef-Unterelemente enthalten. Das ist großartig, wenn Sie einen großen Pool von wiederverwendbaren Komponenten mit einem komplexen Abhängigkeitsgraphen zwischen ihnen haben. Sie richten einfach eine ComponentGroup in ihrem eigenen Fragment für jede Komponente ein und deklarieren die Abhängigkeiten so:
Wenn Sie jetzt die ComponentGroup "B" in Ihrem Setup referenzieren, weil es eine direkte Abhängigkeit Ihrer Anwendung ist, wird automatisch die ComponentGroup "A" mit eingezogen, auch wenn der Anwendungsautor nie realisiert hat, dass es eine Abhängigkeit von "B" war. Es "funktioniert einfach", solange Sie keine zirkulären Abhängigkeiten haben.
Wiederverwendbare wixlib
Die obige Idee des Abhängigkeitsgraphen funktioniert am besten, wenn Sie den großen Pool von wiederverwendbaren Komponenten in eine wiederverwendbare wixlib mit lit.exe kompilieren. Bei der Erstellung eines Anwendungssetups können Sie diese wixlib ähnlich wie eine wixobj-Datei referenzieren. Der candle.exe-Linker eliminiert automatisch alle Fragmente, die nicht von der Hauptprodukt-wxs-Datei(en) "mitgezogen" werden.
0 Stimmen
Blicken Sie sich gui4wix.codeplex.com an
10 Stimmen
Als nicht konstruktiv geschlossen? Ich habe eine Menge gelernt, indem ich diese Frage gestellt habe! Ein wenig Konsistenz von StackOverflow wäre auch schön...z.B. stackoverflow.com/questions/550632/…
15 Stimmen
Es bekam '203' Likes, das reicht aus, um seine Nützlichkeit zu beweisen.
0 Stimmen
SO-Fragen müssen eine definitive, korrekte Antwort haben; offene Fragen führen dazu, dass die Fragen, die die Leute zu tatsächlichen Problemen stellen, von der Startseite abrutschen. FAQ @Si.: Diese Richtlinie war meines Wissens schon immer da, aber sie wird jetzt besser durchgesetzt; diese Frage ist fast drei Jahre alt.
0 Stimmen
Fair genug, Jim, es handelt sich um eine offene Frage, und ich denke, es liegt an der SO-Community zu entscheiden, aber ich muss sagen, dass es eigenartig erscheint, sie als nicht konstruktiv zu schließen, da ich persönlich und anscheinend auch viele andere Personen diese Frage nützlich gefunden haben (z. B. goo.gl/Zqp2X), und dass sie sehr gut zum Teil des FAQs passt, der sich mit
praktischen, beantwortbaren Fragen basierend auf tatsächlichen Problemen, mit denen Sie konfrontiert sind
befasst.0 Stimmen
Es ist nützlich (warum ich hier bin), aber es handelt sich nicht um ein Frage-und-Antwort-Spiel, sondern um eine Diskussion. Die Frage selbst scheint eine legitime Frage zu sein und die aktuell am meisten hochgevotete Antwort scheint eine legitime Antwort zu sein, aber der Rest der Antworten fügen nur ihren Senf hinzu, was es zu einer Diskussion macht.