geänderte Datei nicht entfernen
-
- Beiträge: 29
- Registriert: 24.09.2009, 11:20
geänderte Datei nicht entfernen
Hallo,
gibt es vielleicht als Dateieinstellungen-Attribut : "Veränderte Datei nicht deinstallieren"?
Wenn nicht, wie kriege ich sowas hin? Ich hätte gedacht vielleicht über Dateieinstellungen --> Bedingungen. Aber ich wüsste leider nicht wie.
Gruß
gibt es vielleicht als Dateieinstellungen-Attribut : "Veränderte Datei nicht deinstallieren"?
Wenn nicht, wie kriege ich sowas hin? Ich hätte gedacht vielleicht über Dateieinstellungen --> Bedingungen. Aber ich wüsste leider nicht wie.
Gruß
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: geänderte Datei nicht entfernen
Guten Tag!
Auf welche Art von Daten bezieht es sich, falls Dateien, was für Dateien?
Auf welche Art von Daten bezieht es sich, falls Dateien, was für Dateien?
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust
-
- Beiträge: 29
- Registriert: 24.09.2009, 11:20
Re: geänderte Datei nicht entfernen
z.B. txt-Dateien oder xml-Dateien, die bei der Installation mitinstalliert werden.
Während es mit dem Hauptprogramm gearbeitet wird, werden diese Dateien geändert. Bei der DEInstallation sollten sie nicht deinstalliert werden.
Während es mit dem Hauptprogramm gearbeitet wird, werden diese Dateien geändert. Bei der DEInstallation sollten sie nicht deinstalliert werden.
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: geänderte Datei nicht entfernen
Datei doppelt anklicken -> Komponente -> Permanent setzen -> Ok.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust
-
- Beiträge: 29
- Registriert: 24.09.2009, 11:20
Re: geänderte Datei nicht entfernen
erstmal danke für die schnelle Antwort. Wie immer halt
aber ich habe leider immer noch etwas zu meckern. "Permanent" heisst ja, dass die Datei nie entfernt wird. Ich will aber dass es "parmament" sei NUR wenn die Datei sich inhaltlich geändert hat, sonst soll sie entfernt werden. Gibt´s anscheinend sowas nicht bei AKInstaller. Oder irre ich mich?

aber ich habe leider immer noch etwas zu meckern. "Permanent" heisst ja, dass die Datei nie entfernt wird. Ich will aber dass es "parmament" sei NUR wenn die Datei sich inhaltlich geändert hat, sonst soll sie entfernt werden. Gibt´s anscheinend sowas nicht bei AKInstaller. Oder irre ich mich?
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: geänderte Datei nicht entfernen
Guten Tag!
Nein, dass ist mit MSI-Mitteln so nicht zu regeln.
Allerdings können Sie den Funktionsumfang ja durch eine Benutzerdef. Aktion (CA) erweitern, die diese Datei bei einer Deinstallation nur löscht, wenn Erstelllungsdaum und Änderungsdatum unterschiedlich sein.
Nein, dass ist mit MSI-Mitteln so nicht zu regeln.
Allerdings können Sie den Funktionsumfang ja durch eine Benutzerdef. Aktion (CA) erweitern, die diese Datei bei einer Deinstallation nur löscht, wenn Erstelllungsdaum und Änderungsdatum unterschiedlich sein.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust
-
- Beiträge: 29
- Registriert: 24.09.2009, 11:20
Re: geänderte Datei nicht entfernen
gute Idee. Danke und schönes WE
-
- Beiträge: 29
- Registriert: 24.09.2009, 11:20
Re: geänderte Datei nicht entfernen
Hallo,
ich bin gerade dabei eine benutzerdefinierte Aktion anzulegen, damit bei der DeInstallation geänderte Dateien nicht entfernt werden. Es gibt leider ein paar Sachen, die mir noch nicht klar sind.
Ich gehe davon aus, dass die Einstellungen im rot markierten Bereich im Anhang so richtig sind. In "Wert" ist die geänderte Datei eingetragen.
Die Infos, die mir noch fehlen sind:
- Wo tue ich eingeben, dass die Aktion bei der Deinstallation ausgeführt werden soll und die Datei nicht entfernt werden soll, wenn das Erstellungsdatum und das Änderungsdatum unterschiedlich sind?
- Wo und wie kann das Erstellungsdatum und das Änderungsdatum verglichen werden?
Danke.
Noch eine Bemerkung: Ich habe mir ein paar andere Tools angeschaut, und es ist bei den meisten sogar standard, dass die geänderte Datei bei der Deinstallation nicht entfernt wird. Freeware "Installer2Go" hat es z.B.
Gruß
ich bin gerade dabei eine benutzerdefinierte Aktion anzulegen, damit bei der DeInstallation geänderte Dateien nicht entfernt werden. Es gibt leider ein paar Sachen, die mir noch nicht klar sind.
Ich gehe davon aus, dass die Einstellungen im rot markierten Bereich im Anhang so richtig sind. In "Wert" ist die geänderte Datei eingetragen.
Die Infos, die mir noch fehlen sind:
- Wo tue ich eingeben, dass die Aktion bei der Deinstallation ausgeführt werden soll und die Datei nicht entfernt werden soll, wenn das Erstellungsdatum und das Änderungsdatum unterschiedlich sind?
- Wo und wie kann das Erstellungsdatum und das Änderungsdatum verglichen werden?
Danke.
Noch eine Bemerkung: Ich habe mir ein paar andere Tools angeschaut, und es ist bei den meisten sogar standard, dass die geänderte Datei bei der Deinstallation nicht entfernt wird. Freeware "Installer2Go" hat es z.B.
Gruß
- Dateianhänge
-
- Benutzerdefinierte_Aktion.JPG (144.85 KiB) 12199 mal betrachtet
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: geänderte Datei nicht entfernen
Guten Tag!
Die im Bild dargestellte Aktion versucht Time den Pfad von FL_1374_lam… zuzuweisen. Aber nicht der Datei das aktuelle Datumzuzuweisen.
Um das gewünschte zu bewerkstelligen müssen Sie z. B. eine CA in C schreiben, die etwa so aussieht:
Wenn die Datei von MSI angelegt wird, wird diese bei der Deinstallation auch wieder entfernt.
Sie können die Datei allerdings dmit einem anderen Namen installieren und von Ihrem Programm aus eine Kopie mit dem richtigen Namen anlegen, und die Kopie ggf. durch eine CA löschen.
Die im Bild dargestellte Aktion versucht Time den Pfad von FL_1374_lam… zuzuweisen. Aber nicht der Datei das aktuelle Datumzuzuweisen.
Um das gewünschte zu bewerkstelligen müssen Sie z. B. eine CA in C schreiben, die etwa so aussieht:
Code: Alles auswählen
// Datei muss alls Permanent gekennzeichnet sein
UINT __stdcall MyCA_RemoveFile(MSIHANDLE hInstall)
{
MSICONDITION m_Cond = MsiEvaluateCondition(hInstall, _T("(REMOVE<>\"\" AND REMOVEOLDPRODUCTS=\"\")"));
if(m_Cond != MSICONDITION_TRUE )
{
return ERROR_SUCCESS;
}
…
MsiGetProperty(hInstall, _T("[#FL_1374.."), szMyString, &dwBuffer);
if(_tsaccess(szMyString,0) != 0)
return ERROR_SUCCESS;
FILETIME ftCreationTime, ftLastWriteTime;
GetFileTime(hFile,NULL,NULL,&ftFiletime);
if(hFile != INVALID_HANDLE_VALUE)
{
GetFileTime(hFile, &ftCreationTime,NULL, &ftLastWriteTime);
CloseHandle(hFile);
}
If(CompareFileTime(&ftCreationTime, &ftLastWriteTime) == 0)
return ERROR_SUCCESS;
DeleteFile(szMyString);
return ERROR_SUCCESS;
}
Sie können die Datei allerdings dmit einem anderen Namen installieren und von Ihrem Programm aus eine Kopie mit dem richtigen Namen anlegen, und die Kopie ggf. durch eine CA löschen.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust