Ich plane, eine DLL-Datei innerhalb der MSI-Datei zu ersetzen. Gibt es eine Möglichkeit, dies ohne die MSI-Installation zu tunErsetzen Sie eine Datei von MSI
Antwort
Versuchen Sie InstEdit von http://apps.instedit.com/, aber ich bin mir nicht sicher, ob es möglich ist, Datei innerhalb MSI-Paket zu ersetzen. Außerdem können Sie sich den Microsoft Orca MSI-Editor ansehen, der mit Windows SDK geliefert wird.
Zunächst sollten Sie andere Alternativen ausprobieren, als das MSI direkt zu ändern. Dies ist selten ein guter Weg, aber Sie können Ihre Gründe haben. Weitere Optionen finden Sie unter MSDN on patches.
Aber wenn Sie es direkt ändern möchten, überprüfen Sie diese blog entry. Es erklärt, wie Sie Orca, InstEdit, MSIdb und IExpress verwenden, um das CAB zu extrahieren, das CAB zu dekomprimieren, die Datei zu ersetzen, die CAB-Datei erneut zu komprimieren und an das MSI anzuhängen.
InstEdit (http://www.instedit.com/) funktioniert, aber es ist kein intuitives Werkzeug. Sie müssen nicht die Plus-Version haben, die Basis funktioniert dafür. Gerade fertig damit. Hier ist der Prozess.
1. Nehmen Sie das alte MSI und installieren Sie es, um alle ursprünglichen Installationsziele zu erhalten.
Kopieren Sie alle Installationsziele in das Arbeitsverzeichnis mit Ihrem aktuellen MSI.
offen InstEdit und öffnen Sie das MSI (oder einfach per Drag/Drop MSI in InstEdit Schnittstelle)
Öffnen Sie die Registerkarte Tabellen (siehe Bild)
den Medien Artikel klicken und Sie werden einige sehen Info auf der rechten Seite
Klicken Sie mit der rechten Maustaste in das rechte Fenster und wählen Sie Ausgewählte CABs neu erstellen aus.
Wenn Sie den alten Eintrag im Verzeichnis ersetzen, wo alle Elemente für das MSI gefunden werden, dann, wenn klicken Sie ausgewählt KBS Rebuild wird die neuere Version des Elements automatisch importieren und Ihre CAB wieder aufzubauen.
Fehler sind kryptisch, aber wenn Sie sie genau lesen, können Sie es herausfinden und es funktioniert. Ich habe eine EXE im MSI durch eine neu erstellte Version ersetzt.
EDIT
Es ist fast 1 Jahr und ich kam zurück, mich daran zu erinnern, wie das InstEd Tool funktioniert. Ich bin aber auch auf einen Fehler gestoßen, der Ihnen vielleicht auch begegnet, deshalb möchte ich die zusätzlichen Informationen hinzufügen.
Wenn Sie versuchen, [Rebuild Ausgewählte KBS] Sie können eine Fehlermeldung erhalten, die wie folgt aussieht:
Diese etwas von einem kryptischen Fehler ist. InstEd versucht Ihnen mitzuteilen, dass Sie den CommonFilesFolder-Ordner benötigen, der an dem Speicherort erstellt wurde, von dem Sie versuchen, die CABs neu zu erstellen. Dann legen Sie die Main.exe in diesem Ordner ab. Es sucht auch nach Main.ico in demselben Ordner.
Alles, was Sie tun müssen, kopieren Sie das Ziel. Exe und .ico (oder alle genannten Dateien) in den CommonFilesFolder und führen Sie die Neuerstellung erneut und es wird funktionieren.
- 1. Cab Ersetzen Sie alle Dateien vs Ersetzen Sie eine Datei
- 2. Wie starte ich eine MSI von einer MSI
- 3. eine EXE-Datei von MSI in Wix generiert
- 4. Ich benötige eine benutzerdefinierte MSI-Aktion, die eine Datei aus dem MSI-Quellverzeichnis kopiert
- 5. Update-Voraussetzungen von MSI
- 6. WIX: Führen Sie msi von Netzlaufwerk
- 7. Erstelle Installation (.msi) von .exe-Datei
- 8. MSI Installer Datei/Ordner Berechtigungen
- 9. InstallShield 2012: habe installscript msi project ausführen eine MSI-Datei, die es gerade installiert
- 10. So ändern Sie eine vorhandene Eigenschaft eines MSI mithilfe von MSI-Umwandlung in ORCA
- 11. Wix: einzelnes MSI anstelle von msi + cab
- 12. Öffnen Sie eine Datei und ersetzen Sie Zeichenfolgen in C#
- 13. Msi: Kann eine Eigenschaft von der Befehlszeile
- 14. So extrahieren Sie Daten (Dateianzahl) aus MSI "Datei" Tabelle
- 15. So erhalten Sie eine Liste der verwendeten Dateien bei der Installation von MSI-Datei mit ExternalUI
- 16. MSI-Dateien ausdrücken
- 17. Problem mit langen Verzögerungen in MSI-Datei
- 18. schreiben Sie Berechtigungen auf lokale Datei mit MSI-Installer
- 19. Erkennung von x86/x64 und Installation der korrekten .msi-Datei
- 20. Web-Setup-Projekt nicht generieren MSI-Datei
- 21. Delphi XE2 TZipFile: Ersetzen Sie eine Datei im Zip-Archiv
- 22. Ersetzen Sie eine bestimmte Anzahl in der Datei auf ssh
- 23. So übergeben Sie Befehlszeilenargumente an MSI Installer
- 24. So aktualisieren Sie über MSI
- 25. Ersetzen Sie bestimmte Zeile in TXT-Datei
- 26. Perl: Loop durch eine Datei und ersetzen
- 27. Ersetzen/Alias eine Datei mit Webpack
- 28. Überprüfen Sie eine andere installierte Anwendung, bevor MSI ausgeführt
- 29. VBScript wird nicht korrekt aus MSI-Datei
- 30. Bereiten Sie eine 64-Bit-setup.exe von Basic-MSI-Projekt InstallShield 2009 premier
Weil die InEdE Schnittstelle so nicht intuitiv ist, schrieb ich die obige Antwort vor Wochen und vergaß es. Heute musste ich ein anderes MSI bearbeiten (wir besitzen jetzt die lizenzierte Version) und ich kam hierher zurück, um mich daran zu erinnern, wie man die Software benutzt. ;) – raddevus
Aus irgendeinem Grund funktioniert das nicht für mich. Ich bekomme einen weiteren Fehler - "MakeCab failed". – PASAf