Überschreiben von Dateien mit einem MSI verhindern
Jetzt habe ich schon eine ganze Weile mit WiX rumgespielt, aber einfach keinen Weg gefunden, das Überschreiben von etwa schon vorhandenen Dateien mit Bordmitteln zu verhindern. Also, hingesetzt und eine Custom Action DLL geschrieben, die sich hier findet.
Man bindet das Dingens in Form eines Binary Tags in den Product Tag mit ein:
<Binary Id='CheckTargetDir' SourceFile='custact.dll' />
Dann kopiert man die DLL in die Project Root und ergänzt vor und innerhalb der InstallExecuteSequence die Custom Action:
<CustomAction Id='CheckingTargetDirectoryFiles' BinaryKey='CheckTargetDir' DllEntry='CheckTargetDir' /> <InstallExecuteSequence> <Custom Action='CheckingTargetDirectoryFiles' After='CostFinalize'>NOT Installed</Custom> </InstallExecuteSequence>
Und schon wird jede Datei, die von der Installation ins Zielverzeichnis kopiert werden würde, überprüft, ob sie vielleicht schon da liegt. Ist das der Fall, wird die Installation mit einer Fehlermeldung abgebrochen. Spooky, eh!?!
Trackback address for this post
No feedback yet
Comments are closed for this post.