Хорошо, Даниэль. Я определенно согласен с использованием тепла, но я думаю, что Роб указал мне правильное направление для того, что я в конечном итоге использовал.
В конечном итоге я использовал HeatDirectory. (Обратите внимание, я не планирую вносить исправления. Если вы хотите установить исправления, возможно, вы захотите взглянуть на другое решение, но каталог heat / heat может работать для исправления.) К сожалению, Ответ Роба был довольно ограниченным, поэтому я бы не сказал, что он действительно ответил на мой вопрос. Просто указал мне в правильном направлении. Спасибо и Робу, и Дэниелу за вашу помощь.
Поэтому я вернулся и сам ответил на этот вопрос.
Барьеры ...
Препятствие 1
Я столкнулся с тем, что в Интернете почти нет документации о том, как реализовать каталог тепловых задач / высокой температуры (Heat упакован в msbuild) из Visual Studio. Обратите внимание, что оболочка для запуска из msbuild выглядит довольно новой, и я отказываюсь использовать ее на свой страх и риск и т. Д. Из-за отсутствия документации я отправил электронное письмо в список пользователей wix. Я получил помощь от Брайана Роджерса. Спасибо Брайан, это решило все для меня. Взгляните на его великолепную запись в блоге, чтобы лучше понять, как тепло поможет вам автоматизировать: http://icumove.spaces.live.com/blog/cns!FB93073C6534B681!461.entry
барьер 2
Поработав с теплом, я обнаружил, что я не использую компоненты рекомендованным способом, но мне пришлось собрать воедино все рассуждения. Я думаю, что многие люди столкнутся с этим в начале использования Wix, если у вас нет предварительных знаний установщика Windows. Поэтому я рекомендую немного почитать:
Убедитесь, что вы также читали правила для компонентов, если вы новичок, как я был с установщиком Windows. Правила компонентов от MS: http://msdn.microsoft.com/en-us/library/aa370561.aspx. Прочитайте их от Роба Меншинга для лучшего понимания компонентов: http://robmensching.com/blog/posts/2003/10/4/Windows-Installer-Components-Introduction
http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101
Для дополнительного чтения в установщике Windows проверьте эти правила в команде установщика Windows (правило 16: следуйте правилам компонентов):
http://blogs.msdn.com/windows_installer_team/archive/2006/05/12/595950.aspx
барьер 3
Вы должны решить, хотите ли вы вносить исправления в свои файлы или обновлять каждый раз, когда вы устанавливаете новую версию.
К счастью, мне не нужно вносить исправления, поэтому при каждом обновлении я просто удаляю предыдущую версию, например так: Как реализовать обновление установщика WiX? .
Это значительно упрощает вещи. При исправлении вам понадобится полный контроль над вещами. Нечто более сложное, если вы хотите, чтобы автоматизация / автоматическая сборка была реализована многими разработчиками, которые ничего не знают о wix, кроме wix-сборок msi-полей. Кажется, что это будет работать с использованием тепла, но я не уверен.
барьер 4
Мне потребовалось немного времени, чтобы выяснить, почему не работает файл включения с моими переменными препроцессора. Я наконец-то понял. Вы должны включить файл в ваш файл .wxs следующим образом:
Смотрите здесь для более подробной информации:
Включение содержимого текстового файла в скрипт WiX
http://wix.sourceforge.net/manual-wix2/preprocessor.htm
Препятствие 5
Так как я использую крупные обновления со смесью, и я хотел подключить Subversion к номеру моего продукта. Я думал, что это будет довольно просто, и это если вы знаете, как это сделать. У меня были проблемы здесь, и мне тоже нужно было помочь.
барьер 6
С тепловым обновлением файлов на основе папки bin все работает довольно хорошо. Ну, почти автоматически, если есть какие-либо конфликты в ссылках dll и т. Д., То файлы не будут включены в установщик, и, следовательно, все может работать неправильно. У вас должен быть процесс тестирования, чтобы протестировать вашу программу после установки. Это может иметь решающее значение, если вы пропустите DLL. Я также рекомендовал бы вам отслеживать используемые dll программы и сравнивать их с файлом MSI.
Теперь для решения с использованием HeatDirectory (от помощи Брайана Роджерса (команда wix)):
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == ''">Debug</Configuration>
<OutputName>msbuild.heatfile</OutputName>
<OutputType>Package</OutputType>
<WixToolPath>..\..\YourHeatDir</WixToolPath>
<WixToolPath>$(WixToolPath)</WixToolPath>
<Cultures>en-us</Cultures>
<LinkerBaseInputPaths>..\..\data\HeatDir</LinkerBaseInputPaths>
</PropertyGroup>
<ItemGroup>
<Compile Include="product.wxs" />
<Compile Include="TestDir.wxs" />
</ItemGroup>
<Import Project="$(WixToolPath)\Wix.targets" />
<UsingTask TaskName="HeatDirectory"
AssemblyFile="$(WixToolPath)WixUtilExtension.dll" />
<Target Name="BeforeBuild">
<HeatDirectory
Directory="..\..\data\HeatDir"
DirectoryRefId="DataDir"
OutputFile="TestDir.wxs"
AutogenerateGuids="true"
ToolPath="$(WixToolPath)" />
</Target>
Это должно быть вставлено в файл вашего проекта и соответствующие настройки / пути должны быть изменены. Что это будет делать, это взять все файлы по указанному путии создайте файл TestDir.wxs, на который вы затем сможете ссылаться по группе компонентов. Существует несколько опций Heatdirectory, чтобы узнать подробности об источнике тепла.
Просто для справки: я нашел этот пост в stackoverflow после того, как опубликовал свой вопрос: Как добавить весь каталог или вывод проекта в пакет WiX
Также для справки я только что видел эту статью здесь: Сбор .csproj с heat.exe в Visual Studio 2008 и WiX (v3) . и снова это можно сделать, используя вместо этого задачи по нагреву.
Оба обсуждают использование сторонних инструментов. Один называется Мэллов, а другой - Парафин. Я думаю, что парафин выглядит поддерживаемым и может делать то же самое, что и тепло.
С некоторыми дополнениями: подробности см. Здесь: http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/10/18/wix-hints-for-new-users-part-1-of-3.aspx
В любом случае, надеюсь, что это поможет другим.