WiX: атрибуты CopyFile - PullRequest
       16

WiX: атрибуты CopyFile

8 голосов
/ 21 января 2009

При установке я хочу дополнительно скопировать некоторые файлы .ini из SOURCEDIR в TARGETDIR, что означает, что из каталога файл .msi находится в папке назначения, к которой настроено приложение.

Я сделал <CopyFile Id="CopyIniFile" DestinationProperty="INSTALLDIR" SourceProperty="SOURCEDIR" SourceName="Dreem15.ini" Delete="no" />, но, похоже, он ничего не делает. Файл журнала не очень помогает.

Я успешно выполнил гораздо более сложный сценарий с CopyFile, и я озадачен этим простым.

Редактировать: у меня есть эти строки в таблице MoveFile:

<b>|FileKey     |Component     |SourceName          |SourceFolder|DestFolder|Options</b>
|CopyIniFile |CoAppLicAndIni|Dreem15.ini         |SOURCEDIR   |INSTALLDIR|0
|MoveDataFile|CoAppLicAndIni|Dreem10_Personal.mdf|DB_DIR10    |INSTALLDIR|0

и второй работает. DB_DIR10 ищется в реестре, как это

<Property Id="DB_DIR10">
    <RegistrySearch Id='DbDirSearch10' Type='raw' Root='HKLM' Key='Software\$(var.CompanyName)\$(var.MsdeInstance)' Name='Dreem10_Personal' />
</Property>

Ответы [ 2 ]

4 голосов
/ 21 января 2009

Согласно документации установщика Windows для свойства sourcedir , оно указывает на «корневой каталог, содержащий исходный файл CAB-файла или дерево исходных файлов установочного пакета».

То есть либо вы не знали, что SourceDir является предопределенным свойством установщика Windows, либо пытаетесь скопировать неупакованный файл с установочного носителя, содержащего msi. В последнем случае, возможно, имеет смысл установить файл как обычный компонент, чтобы он был надлежащим образом удален.

Редактировать: Я протестировал сценарий "Копировать с установочного носителя", и он сработал для меня. Кроме того, я установил с

misexec /lvx* install.log /i mymsi.msi

и журнал показывает копируемый файл. Что говорит журнал в вашем случае?

Edit2: Хотя CopyFile работал для меня, лучшим решением было бы добавить несжатый носитель в ваши wxs, например так:

<Media Id='2'/>

А затем настройте элемент File для настраиваемого файла конфигурации следующим образом:

<File Source='path\to\default\config.ini' Compressed='no' DiskId='2' />

Это заставит установщик искать файл config.ini в той же папке, что и msi, сочетая преимущества настраиваемости и чистого удаления.

1 голос
/ 21 января 2009

Можете ли вы использовать DestinationDirectory="INSTALLDIR" вместо этого, или вам нужно создавать свойства на лету ??

Элемент WIX CopyFile

Этот wxs, поместит файл в MSI

<Component Id="myIni.ini" Guid="*">
  <File Id="myIni.ini" Name="myIni.ini" KeyPath="yes" Source="!(wix.Files)\myIni.ini">
    <CopyFile Id="CopyIni" DestinationProperty="TARGETDIR" />
  </File>
</Component>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...