Куда помещать контент, в проекте установщика (WiX) или в проекте кода - PullRequest
2 голосов
/ 01 декабря 2010

Итак, я вижу два решения моей текущей проблемы, но мне было интересно, каковы плюсы и минусы, или есть ли подход передовой практики defacto.

Итак, в моем текущем проекте есть несколько файлов конфигурации, файлов справки и другого внешнего контента. Мне нужно это локальное содержимое для запуска и отладки приложения. В настоящее время мы дублируем этот контент в стандартном проекте Windows Installer. Это явно плохая идея. Мы переходим к новой настройке, использующей установщик WiX, и в настоящее время я настраиваю проект рядом с проектом кода и пытаюсь найти лучший способ совместного использования ресурсов. Я вижу два решения.

Во-первых, я могу поместить все ресурсы в проект WiX, а затем добавить их в виде ссылок в проект кода. Таким образом, я знаю, что я отлаживаю, это установщик.

Другой вариант - оставить содержимое в проекте кода и указать путь к нему в установщике с помощью ссылочных переменных.

Сейчас кажется, что 6 в одну сторону, полдюжины в другую. Какие-нибудь убедительные аргументы для любого метода?

1 Ответ

1 голос
/ 10 декабря 2010

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

Для более ранних версий WiX или более сложных сценариев развертывания (когда файлы содержимого могут находиться в разных каталогах), вы все равно поместите их в проект кода, но затем будете использовать элементы File с относительным путем или ссылкой переменная в атрибуте Source для включения файлов содержимого из каталога проекта кода.

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

Итак, возвращаясь к простому случаю, когда контент находится в проекте кода и помечен как Контент, и он будет установлен и загружен из того же каталога, что и исполняемые файлы, тогда остается только установить параметр «Копировать в вывод». Директория "Копировать всегда" или "Копировать, если новее", и тогда вы можете быть уверены, что версии, используемые при отладке, и установленная версия будут совпадать.

...