Как настроить проект установщика с условным копированием файлов - PullRequest
3 голосов
/ 06 июля 2011

Я создаю установщик VS 2010 и хочу скопировать файлы в папку приложения в зависимости от того, какие параметры я выбираю в пользовательском интерфейсе (пользовательский интерфейс не прост, поэтому единственный вариант - показать настраиваемые диалоговые окна в Установке настраиваемого действия).Проблема заключается в том, что пользовательское действие фактически выполняется после того, как файлы уже скопированы.

Одно из возможных решений, о которых я могу подумать, - это установить все эти файлы в каталог приложения, а затем удалить некоторые ненужные файлы в пользовательском действии.Но эти файлы в некотором роде «безопасны», поэтому я не хочу копировать их в файловую систему, даже на короткий промежуток времени.

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 06 июля 2011

Большинство элементов управления в диалоговых окнах MSI используют свойства установщика . Например, флажок может использовать свойство с именем MY_CHECKBOX, для которого установлено значение или оно пустое, в зависимости от того, установлен флажок или нет.

Эти свойства могут использоваться для файлов условий:

  • выберите ваш проект установки в Solution Explorer
  • нажмите кнопку редактора файловой системы в верхней панели Solution Explorer
  • выберите файл, который вы хотите обработать
  • в его панели свойств установите Условие в нужное условие, например

    MY_CHECKBOX = "значение"

0 голосов
/ 06 июля 2011

Если ваши файлы никогда не должны быть в файловой системе, у вас есть проблема в требованиях. Само хранилище .msi является открытым форматом и может быть прочитано многими инструментами, поэтому, если кто-то знает файл, он может найти и извлечь его вручную.

Я согласен, что лучше избегать удаления файлов после их установки по двум причинам. Один: он позволяет избежать бесполезной работы, и второй: он не вызовет сценариев восстановления из-за отсутствующих файлов, которые, по мнению установщика Windows, должны присутствовать. Вы, вероятно, должны выяснить, как определить, должны ли эти файлы присутствовать на более ранней стадии установки, и установить свойства, которые вызывают это (отключение компонентов по условию или изменение состояний компонентов).

...