Buch
- App-V Infrastruktur
- App-V Client
- App-V Sequenzierung
- Tools & Troubelshooting
- PowerShell mit App-V
AppV2Msi ein Tool, das ist entstanden ist, um eine .appv Datei (App-V 5) in ein „echtes“ MSI Files zu wandeln. Für mich war das ein Projekt, um tiefer in die Mechanismen der Software-Virtualisierung mit App-V einzusteigen und die Möglichkeiten besser zu verstehen.
Die Entwicklung ist nicht abgeschlossen. Gerade wenn wir entsprechendes Feedback zu der Anwendung erhalten, werden wir diese Anwendung auch weiter entwickeln. Irgendwann vielleicht auch zu einer Pro Version. Aktuell konnten wir mit dem Tool mehr Anwendungen wandeln, als zunächst erwartet.
Gerade wurde ich von einem im App-V Bereich darauf angesprochen, warum wir das überhaupt machen. Die einfache Antwort ist, dass es sehr einfach funktioniert!
Folgende Anwendungsszenarien:
Erstellung eines MSI für ein neues „einfaches“ Produkt für die Firmeninterne Nutzung. Man nehme des Sequencer (Technet oder die Beta über connect.microsoft.com – suche nach „desktop optimization Pack“). Und erstellt aus der Sequence ein msi.
Der Weg zurück: Man möchte die Plattform wechseln. Oder eine Anwendung funktioniert nicht als App-V Anwendung. Auch dafür kann das Tool genutzt werden
Diese Software ist experimentell. Die Resultate sind teilweise funktionsfähig, jedoch sind sehr viele Ausschlüsse und Besonderheiten zu beachten. Verwendet werden sollten aktuell nur .appv Files, die mit einem 32Bit Windows 7 sequenciert wurden und die nur 32 Bit Anwendungen enthalten (64 Bit ist implementiert jedoch nicht vollständig ausgetestet). Die Resultate funktionieren dann Teilweise auch unter Windows 7 64 Bit und Windows 8. Die Installation und Deinstallation der MSI Files verlief in einigen Fällen unsauber. Daher bitte nur in Testumgebungen verwenden. Die Nutzung erfolgt in Ihrer eigenen Verantwortung. Also nur etwas für Experten! Wir übernehmen keinerlei Haftung für die Nutzung dieser Software. Wir unterstützen gerne bei Fragen.
Die Rechte zu Appv2msi liegen ausschlich bei der Nick Informationstechnik GmbH. Die Nutzung dieser Version (1.0.0.0) ist frei. Wir übernehmen keinerlei Gewährleistung für eventuelle Schäden oder Datenverlust durch die Nutzung dieser Software. © 2013 Nick Informationstechnik GmbH / Andreas Nick
AppV2msi wird ausschließlich über die Webseite http://www.software-virtualisierung.de bereitgestellt. Eine Verlinkung ist erwünscht, jedoch nicht die Bereitstellung von Kopien. Die Bereitstellung einer Kopie verstößt gegen unsere Rechte und wird rechtlich verfolgt.
Für die Nutzung und den Download ist eine Anmeldung auf der Webseite http://www.software-virtualisierung.de notwendig. Wir gehen sorgsam mit Ihren Daten um, und geben diese nicht weiter. Bitte beachten Sie die Bedingungen bei der Anmeldung zum Thema „Newsletter“ und Kontakt“
Bitte beachten Sie zu der genutzten Software die entsprechenden Lizenzinformationen
Fehlermeldung: Key /REGISTRY/USER/[{AppVCurrentUserSID}]/.....File Folder NONE (null) [0] with name "File Folder" and Value "(null)" in not in the msi
Es gibt einige Registrierungswerte, die als Type eine "Null" haben. Also nicht Reg_sz, DWord o.ä. Hier scheint es keine Möglichkeit zu geben, diese mit WiX zu erzeugen. Hat jemand dazu Informationen?
Kurzanleitung
Zunächst ein neues Projekt anlegen. Der Default-path ist "%appdata%\appv2msi\Projects\". Dort legen Sie ein Verzeichnis für Ihr Projekt fest (Ordner anlegen).
Anschließend über "Select File" ein App-V 5 .appv File auspfählen
Das Tool versucht aus einigen Konfigurationsdateien (.xml) des .appv Files Informationen zu extrahieren. Das klappt nicht immer vollständig!
Gerade für Packagename, Display Name, Version (x.x.x.x) und Manufacture können beliebige ASCII-Zeichen eingetragen werden.
Bitte besonders den Installationspfad beachten.
Für die Quelle (.appv) darf die Hauptanwendung nur nach c:\program Files (x86)\<APPFOLDER> oder nach c:\Program Files\<APPOLDERY> installieren. Der Installationspfad kann angepasst werden. Das Zielverzeichnis (c:\program Files (x86)\ oder c:\program Files\) wird dann nur über den „64“ Bit Schalter gewählt. Ist dieser gesetzt, kann auch eine 32 Bit Anwendung nach c:\Program Files\<APPOLDERY> installiert werden.
Beispiel:
Ohne den 64 Bit Schalter landet diese Anwendung unter „c:\program Files (x86)\nick-it\Mozilla-Firefox\“ und das ist korrekt! Also hier diesen Schalter nicht setzen.
Alle Projekteinstellungen werden mit dem Projekt gespeichert und landen in der Datei:
%appdata%\appv2msi\Projects\<MYPROJECT>\<MSINAME>_Settings.xml
Hier landen auch alle Änderungen für Substitutionen und Ausschlüsse, die für ein Projekt vorgenommen werden.
Aktuell eine weitgehend ungetestete Funktion. Ein sauberes Update ist abhängig von sauberen Guids. Diese dürfen nicht zufallsgeneriert werden. Also den Schalter "Gen random Guid" aus lassen! Die Guids werden dann auf Basis der Pfadnamen generiert. Das Verzeichnis darf sich nicht ändern! Es muss ein neuer Upgradecode eingetragen werden. Der generierte Productcode und Upgradecode muss identisch zu der Vorversion sein. Weiterhin muss auch eine neue Versionsnummer eingetragen werden. Bei der Versionsnummer muss das Msi Format beachtet werden. Also 1.0.0.0 wird zu 1.0.1.0. Es werden von dem MSI nur die ersten drei Werte betrachtet. Also mindestens an der dritten Stelle ändern! Die GUIDS werden über den Projektpfad generiert. Der muss aktuell exakt identisch zu der Vorversion sein. Also das gleiche Projektverzeichnis unter dem gleichen Pfad. Das alte Verzeichnis sollten Sie sichern! Bitte in jedem Fall den generierten Productcode überprüfen! Wenn der identisch ist, kann die neue Version generiert werden
ANMERKUNG: Wir planen an dieser Stelle einige Erweiterungen
Loganalyse
Im Projetverzeichnis werden unter “Logs” die folgenden Dateien erstellt:
Die Logs enthalten teilweise viele Warnungen und auch Errors, einiges davon wird mit neuen Versionen beseitigt. Einiges kann auch problemlos ignoriert werden.
IMPORTANT INFO [{..}] Value not found in substitution table. Please make a entry : [{Desktop}]\....
Hier fehlt eine Substitution in der Registrierung. Diese muss im Projekt ergänzt werden. Beispiel [{Desktop}] => [DesktopFolder]
Anmerkung: Wir bitten um Infos, welche Pfade hier möglicherweise als Standard enthalten sein sollten!
Wichtige Links in diesem Zusammenhang:
WiX Burn Built-in Variables:
http://wixtoolset.org/documentation/manual/v3/bundle/bundle_built_in_variables.html
Einige Infos von Microsoft:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762494(v=vs.85).aspx
Beschreibung der wichtigsten Felder. Teilweise können die Felder nicht korrekt aus den .appv XML Files ausgelesen werden. Dann müssen diese Daten manuell eingetragen werden
Hier sind Ausschlüsse aus dem Appv Filesystem definiert. Also Ordner, die bei der Konvertierung ignoriert werden. Es werden nur die Ordner berücksichtigt, die markiert sind.
Die die Software mit regulären Ausdrücken arbeitet, ist für ein Backslash jeweils ein Doppeltes zu setzen „\\“. Nach der Durchsicht der Logs hier ggf. erweitern.
Hier sind Registriegungs-Ausschlüsse definiert. Also die Hives, die bei der Konvertierung ignoriert werden. Es werden nur die Zweige berücksichtigt, die markiert sind.
Es werden die AppV Variablen in msi Variablen gewandelt. Hier muss ggf. nach Durchsicht der Logs ergänzt werden. Eine Besonderheit ist, dass nur die root\vfs Pfade in das msi wandern, die markiert wurden. Alle anderen VFS Verzeichnisse werden ignoriert! Einige Projekte werden hier erhebliche Erweiterungen benötigen. Eine Übersicht findet sich in der WiX Dokumentation:
http://wixtoolset.org/documentation/manual/v3/bundle/bundle_built_in_variables.html
Die AppV Pade werden so angegeben, wie diese im Filesystem zu sehen sind. Also Leerzeichen werden durch ein %20 ersetzt etc.
Wandelt die AppV Variablen in der Registrierung zu msi Variablen. Bitte einfach mal in die erweiterten Einstellungen des Sequencers schauen. Davon gibt es eine ganze Menge. Wir haben hier nur die wichtigsten eingetragen. Fehlende variablen werden in dem Log gemeldet. Gewandelt werden nur die maskierten Variablen.
AppV2Msi a tool that is being created to transform Microsoft App-V 5 Files into a "real " MSI files.
...
Kommentare