Przeprowadzam główne uaktualnienie i odinstalowanie istniejącego produktu przed zainstalowaniem nowej wersji. Ale chcę zachować istniejący plik konfiguracyjny.Plik Wix CopyFile przed deinstalacją i przywróceniem po odinstalowaniu
Ponieważ wcześniejsza wersja nie miała ustawienia Permanent = "yes", usuwa plik konfiguracyjny podczas deinstalacji.
I jak mogę zrobić coś takiego, zrób kopię "app.config" jako "app.config.bak" przed odinstalowaniem. Po odinstalowaniu, przywróć go z "app.config.bak" do "app.config".
<DirectoryRef Id="INSTALLDIR">
<Component Id="BackupConfigComponent" Guid="87368AF7-4BA2-4302-891A-B163ADDB7E9C">
<CopyFile Id="BackupConfigFile" SourceDirectory="INSTALLFOLDER" SourceName="app.config" DestinationDirectory="INSTALLFOLDER" DestinationName="app.config.bak" />
</Component>
</DirectoryRef>
<DirectoryRef Id="INSTALLDIR">
<Component Id="RestoreConfigComponent" Guid="87368AF7-4BA2-4302-891A-B163ADDB7E9C">
<CopyFile Id="RestoreConfigFile" SourceDirectory="INSTALLFOLDER" SourceName="app.config.bak" DestinationDirectory="INSTALLFOLDER" DestinationName="app.config" />
</Component>
</DirectoryRef>
<InstallExecuteSequence>
<Custom Action="BackupConfigFile" After="InstallInitialize" />
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="RestoreConfigFile" After="InstallInitialize" />
</InstallExecuteSequence>
Dzięki
Mówi Błąd Wartość atrybutu Custom/@ After "RemoveExistingProducts" nie jest prawnym identyfikatorem. Identyfikatory mogą zawierać znaki ASCII A-Z, a-z, cyfry, podkreślenia (_) lub kropki (.). Każdy identyfikator musi rozpoczynać się od litery lub podkreślenia. –
OK, było to spowodowane przestrzenią, ale teraz jest napisane: Nierozwiązane odniesienie do symbolu "CustomAction: BackupConfigFile" w sekcji "Produkt: *". –
Utworzono niestandardową akcję o nazwie BackupConfigFile? To nie jest standardowa niestandardowa czynność, którą zapewni Ci Instalator Windows. – Adkins