2010-06-01 2 views
0

Хорошо! Наконец, я более подробно определил проблему, которую я испытываю. В моем установщике я пытался получить файл настроек REMAIN INTACT при серьезном обновлении. Я, наконец, получил эту работу с предложением установитьОбновление WiX! Требуется различное поведение для разных компонентов.

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallFinalize" /> 
</InstallExecuteSequence> 

Это успешно принуждая этот компонент, чтобы оставить оригинал, а не заменить его, если он существует:

<Component Id="Settings" Guid="A3513208-4F12-4496-B609-197812B4A953" NeverOverwrite="yes"> 
    <File Id="settingsXml" KeyPath="yes" ShortName="SETTINGS.XML" Name="Settings.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Settings\settings.xml" Vital="yes" />   
</Component> 

ОДНАКО! Это проблема! У меня есть еще один компонент, указанный здесь:

<Component Id="Database" Guid="1D8756EF-FD6C-49BC-8400-299492E8C65D" KeyPath="yes"> 
    <File Id="pathwaysMdf" Name="Pathways.mdf" DiskId="1" Source="\\fileserver\Shared\Databases\Pathways\SystemDBs\Pathways.mdf" Vital="yes"/> 
<File Id="pathwaysLdf" Name="Pathways_log.ldf" DiskId="1" Source="\\fileserver\Shared\Databases\Pathways\SystemDBs\Pathways.ldf" Vital="yes"/> 
</Component> 

И этот компонент ДОЛЖЕН БЫТЬ ЗАМЕНЕНЫ при серьезном обновлении. Я могу выполнить только это до сих пор, установив

<RemoveExistingProducts After="InstallInitialize" /> 

ЭТО Перерывы ПЕРВЫЙ ФУНКЦИОНАЛЬНОСТИ Я НУЖНА с настройками ФАЙЛ.

КАК МОЖНО СДЕЛАТЬ ОБА?

+0

Возможно, что мне нужно два пользовательских действий, один, что позволяет создавать резервные копии файлов, что существует до RemoveExistingProducts, а другой, чтобы восстановить этот файл? Может ли кто-нибудь дать мне представление о том, как это будет выглядеть? Для фактического действия нужен файл exe или bat? Как передать имя файла и директории? – Joshua

ответ

1

Проблема в том, что settings.xml не должен быть установлен в первую очередь, то, что вы действительно хотите сделать, это установить что-то вроде «defaultSettings.xml» и изменить его в отдельном месте, скопировав по умолчанию конфигурацию пользователя/системы либо на этапе установки после установки, либо при первом запуске. Если пользователь изменяет файл и запускает «ремонт», тогда он все равно будет перезаписан, это намеченное поведение установщика Windows.

Если вы действительно хотите, чтобы установщик Windows «оставил файл в покое», вам понадобится неуправляемый компонент, т. Е. Компонент с пустым GUID. Такие как ...

<Component Id="Settings" Guid="" NeverOverwrite="yes"> 
    <File Id="settingsXml" KeyPath="yes" ShortName="SETTINGS.XML" Name="Settings.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Settings\settings.xml" Vital="yes" />   
</Component> 
+0

За исключением того, что я не могу это изменить! Я имею дело с установщиком OLD, начиная с того, как я даже начал работать здесь, и что нужно обновить с новой версией, которую я написал! – Joshua

+0

Я решил, что единственный оставшийся вариант - это два пользовательских действия ... которые я пытаюсь получить! http://stackoverflow.com/questions/2953366/wix-custom-action-with-dtf-quite-confused – Joshua

0

Если кто-то не согласен, я решил, что то, что я хочу сделать, НЕВОЗМОЖНО. Я пытаюсь уродливый взлом, используя два пользовательских действия!

WiX custom action with DTF... quite confused

Смежные вопросы