Ich habe einen WMI-Provider in C# mithilfe des Namespaces System.Management.Instrumentation entwickelt. Ich muss den Anbieter in den GAC installieren und es mit dem WMI-Repository mithilfe von MSI registrieren. Wie kann ich dies mit WIX erreichen?Verwenden von WIX zum Installieren eines WMI-Providers
Antwort
Sie benötigen eine CustomAction, um den WMI-Anbieter zu registrieren. Wir haben darüber nachgedacht, dem WiX-Toolset eine Standard-CustomAction hinzuzufügen, um dies zu unterstützen, hatten aber noch nicht die Zeit dazu. Wahrscheinlich ziemlich viel Arbeit.
Sie möchten vielleicht die AssemblyInstaller-Klasse im .NET-Framework auschecken.
Sie können eine verwaltete benutzerdefinierte Aktion erstellen, die die Methoden Install() und Commit() verwendet, um ein MOF Ihres WMI-Anbieters zu generieren und zu installieren. Sie können auch die Uninstall() - und Commit() -Methoden in Ihrer Deinstallations-CustomAction verwenden.
Ich weiß nicht, ob dies der offizielle empfohlene Weg ist, um diese Aufgabe zu erfüllen. Es fühlt sich an wie Selbstregistrierung, die ich nicht gerne in einem Installer verwende. Die einzige Möglichkeit, statische Klassen-/Instanzdefinitionen in der WMI-Datenbank zu speichern, besteht jedoch darin, eine MOF-Datei zu kompilieren. In der MOF mit Ihren Klassen-/Instanzinformationen wird auf Ihre WMI-Provider-Assembly verwiesen.
Die AssemblyInstaller-Klasse weiß, wie Sie Ihre MOF-Datei für Sie generieren und kompilieren können. Es gibt auch eine native API (IMofCompiler :: CompileFile): http://msdn.microsoft.com/en-us/library/aa390867(v=vs.85).aspx, die verwendet werden kann, um Ihre MOF-Datei zu kompilieren.
- 1. Verwenden von Wix zum Bereitstellen eines Outlook-Add-Ins
- 2. Verwenden von WiX zum Erstellen eines virtuellen IIS-Verzeichnisses
- 3. Installieren einer Webanwendung mit Wix
- 4. WiX - Windows-Dienst installieren und Berechtigungen erteilen
- 5. Selbstaktualisierung Anwendung mit WIX installieren?
- 6. WIX installieren Standard-Feature nicht
- 7. wix major upgrade nicht alle Dateien installieren
- 8. Verwenden von Dateinamen in WiX
- 9. Installieren von easy_install ... zum Installieren von lxml
- 10. Installation von WiX 3.5 neben WiX 3.0
- 11. Verwenden von WIX3.6 zum Installieren von .NET Framework 3.5 SP1 mit Brennen
- 12. Wix-Setup zum Bereitstellen von Nuget-Paketen
- 13. Verwenden eines Edelsteins, ohne es zu installieren
- 14. Wie Verwenden von CustomAction in WIX Bundle?
- 15. Verbessern der Leistung von Wix msi installieren/deinstallieren
- 16. WiX: InstallService bedingt, aber Datei unbedingt installieren
- 17. Verwenden von apt-get zum Installieren einer Instanz einer Webanwendung
- 18. Verwenden von Jmeter zum Ausfüllen eines Formulars?
- 19. Verwenden von FileSystemWatcher zum Überwachen eines Verzeichnisses
- 20. Verwenden von unique_ptr zum Steuern eines Dateideskriptors
- 21. Verwenden von jQuery zum Aufrufen eines Webdiensts
- 22. Verwenden von resque zum Implementieren eines Befehlsmusters
- 23. Verwenden von SimpleDateFormat zum Formatieren eines Zeichenfolgenarrays
- 24. Verwenden von Knockout zum Erstellen eines Schiebereglers
- 25. Verwenden von My.Settings zum Speichern eines Arrays
- 26. Verwenden von SmtpClient zum Senden eines Dateianhangs
- 27. Verwenden von OKHttp3 zum Senden eines MultipartBody
- 28. Verwenden von Datenbankdaten zum Auffüllen eines Graphen
- 29. Verwenden von MapMaker zum Erstellen eines Caches
- 30. Verwenden von JMeter zum Testen eines Sockets
Ist es möglich, dies ohne Aufruf von InstallUtil.exe zu tun? Wir möchten InstallUtil nicht verwenden, da es keine Unterstützung für Rollback-Szenarien gibt. –
Ja, InstallUtil.exe sollte niemals für CustomActions verwendet werden. Die Verwendung von DLLs, die Tabellen aus dem MSI lesen, ist die Art und Weise, wie alle CustomActions des WiX-Toolsets implementiert werden. Sie könnten sie überprüfen. –