2015-01-16 6 views
0

Как говорит название, я хочу, чтобы установить внешний файл:Копировать внешний файл или возврат к внутреннему файлу с WiX

<Component> 
    <File Source="Application.exe.config" Compressed="no" /> 
</Component> 

и-если внешний файл не доступен-установку по умолчанию, внутренний файл:

<Component> 
    <File Source="Application.exe.default.config" Name="Application.exe.config" /> 
</Component> 

Таким образом, гарантировано, что файл всегда установлен. Как я могу это достичь?

Чтобы уточнить: по внешнему я НЕ имею в виду элемент CopyFile. Вместо этого я говорю о нормальном WiX-файле (как видно из первого фрагмента), который просто не сжимается в кабине.

+0

Что вы подразумеваете под внешним файлом? – Isaiah4110

+0

@ Isaiah4110, как показано в моих фрагментах кода: файл, который не встроен в msi, но поставляется отдельно. – jacob1123

ответ

2

Ваш фрагмент кода показывает файл в MSI, а не внешний, это путаница. Если он внешний, это не в WiX или MSI, вы должны скопировать его с помощью элемента WiX CopyFile.

У меня возникнет соблазн использовать поиск файлов, чтобы увидеть, присутствует ли файл, и сохранить полученное свойство с помощью шаблона свойств памяти WiX. Сделайте свой компонент файла транзитивным и обусловленным, например, «НЕ FILEFOUND», чтобы он не был установлен, если внешний файл найден. Тогда вам нужен только внешний файл, скопированный, если установлен FILEFOUND. Для этого я бы добавил еще один транзитивный компонент, содержащий только запись в реестре (он должен содержать что-то) с условием FILEFOUND. Поместите WiX CopyFile в этот компонент, чтобы он запускался при установке FILEFOUND. Я думаю, что это сделало бы это без написания кода.

+0

Я обновил вопрос для уточнения. Не могли бы вы добавить немного кода? Я еще не использовал Условия, и похоже, что это может сработать для меня. FileSearch и transitive являются полезными подсказками. – jacob1123

+0

Сделайте поиск в учебнике -WiX и возьмите его оттуда. Для внешней копии файла рядом с файлом MSI найдите пример WiX CopyFile, в котором исходное местоположение имеет SourceDir. Также посмотрите на записи «От MSI до WiX-блога». – PhilDW

+0

В чем преимущество использования CopyFile и файла с атрибутом Compressed = "no"? – jacob1123

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

  • Нет связанных вопросов^_^