2016-07-24 26 views
0

Ich habe WiX verwendet, um ein Installationsprogramm (MSI) für eine Anwendung zu erstellen, das funktioniert, außer für diese unvernünftige Menge von "Anwendungen, die Dateien verwenden, die aktualisiert werden müssen von diesem Setup ":Unerwartete Menge von "Dateien in Verwendung" während WiX-Installationsprozess

Excessive Files In Use during Installation

Dies geschieht für einige Benutzer einige Male, und ich verstehe nicht ganz, warum dies geschieht und wie es zu beheben.

Ich sehe keinen Grund, dass der Installationsprozess meiner Anwendung mit all diesen Anwendungen in Konflikt geraten würde, und ich bin nicht sicher, wie ich es weiter untersuchen soll.

Meine Anwendung ist eine eigenständige Desktop-Anwendung - kein Add-On oder etwas, das interagiert oder von einer der aufgeführten Anwendungen abhängig ist.

Die Schritte zum Installationsprozess hat:

  1. Überprüfen Sie, dass .NET Framework 4.0 CP zur Verfügung steht (Ausfahrt, wenn nicht).
  2. Installieren Sie die Anwendung unter Program Files [Unternehmen] [Artikel] (einschließlich meiner exe, meine DLL, 2 dritte Partei DLL, die ich bündeln)
  3. 14,0 Visual C++ Runtime Redist Install MS wenn
  4. hinzufügen Menüeinträge Starten benötigt für die Anwendung (starten Sie & Verknüpfungen zu deinstallieren)
  5. Benutzerdefinierte Aktion zum Erstellen einer geplanten Aufgabe, die meine Anwendung auf Benutzeranmeldung als Admin startet (die Anwendung wird im Tray als Administrator ausgeführt).
  6. Benutzerdefinierte Aktion zum Starten der Anwendung nach Abschluss der Installation (wenn das Kontrollkästchen im letzten Dialogfeld aktiviert ist).

Irgendwelche Ratschläge, wie man dieses Problem beheben oder zumindest zu untersuchen, was dies verursacht, wird :-)

Antwort

2

geschätzt werden Ist es nur geschehen, wenn Sie das Installationsprogramm und Ihre Desktop-Anwendung ausgeführt wird bereits ausgeführt?

Um dies weiter zu untersuchen, sollten Sie sich Ihre Protokolldatei ansehen. Die Protokolldatei wird die Details über die Datei, die von dem anderen Prozess festgehalten wird, so etwas wie:

Info 1603. The file C:\...\abc.exe is being held in use by the following process: Name: xyz, Id: 19010, Window Title: 'xyz'. Close that application and retry. 
Info 1603. The file C:\...\abc.dll is being held in use by the following process: Name: xyz123, Id: 9243, Window Title: 'xyz123'. Close that application and retry. 

Sobald Sie die aktuelle Datei, die von diesen anderen Prozess verwendet wird bestimmen, dann wird es Ihnen helfen, herauszufinden, was die Ursache ist. Im Wesentlichen bestimmt die Windows Installer-Aktion INSTALLVALIDATE, ob eine oder mehrere Dateien, die überschrieben oder entfernt werden sollen, gerade von einem aktiven Prozess verwendet werden. Ein Eintrag wird zu einer internen FilesInUse-Tabelle hinzugefügt, wenn eine Datei überschrieben oder entfernt wird, während sie während eines Prozesses unter File costing zur Ausführung oder Änderung geöffnet ist. Die FilesInUse-Tabelle enthält Spalten für den Namen und den vollständigen Pfad der Datei. Wenn die InstallValidate-Aktion ausgeführt wird, fragt das Installationsprogramm die FilesInUse-Tabelle nach Einträgen ab und bestimmt den Namen des Prozesses, der die Datei verwendet. Die Aktion InstallValidate fügt der ListBox-Benutzertabelle einen Datensatz für jeden eindeutigen Prozess hinzu, der von dieser Abfrage identifiziert wird.

+0

danke für alle Details :-) nein, bisher ist das nur bei der Erstinstallation passiert, bevor meine Anwendung installiert wurde oder läuft. könnte es wegen der MS Visual C++ Runtime Mergemodul sein? könnte es sein, dass mein Installer es ersetzt und alle diese Anwendungen davon betroffen sind? Ich werde versuchen, nach Hinweisen in den Protokollen natürlich aussehen - nur eine Vermutung :-) – Itamar

+0

werfen Yup Ich denke, das ist eine gut begründete Vermutung, C++ Runtime Redist könnte die Ursache sein. ? – Isaiah4110

+0

Bisher kein Glück mit dem Thema Reproduktion mit Protokollen aktiviert :-(Bei C++ Runtime Redist ist die Ursache, was kann ich damit umgehen kann ich die WiX How-To folgte ihm auf Installation (http: // wixtoolset .org/Dokumentation/manual/v3/howtos/redistributables_and_install_checks/install_vcredist.html). – Itamar