Сбор урожая .csproj с heat.exe в Visual Studio 2008 и WiX (v3)

Использование обработчика событий ItemCheck является правильным методом для определения, когда пользователь отмечает или снимает отметку с элемента в CheckedListBox. И да, он также будет срабатывать, когда элемент проверен / снят программно.

Если вы не хотите, чтобы событие запускалось при программной установке / удалении элементов, вы должны удалить обработчик события перед этим.

Предполагая, что ваш обработчик событий выглядит следующим образом:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked)
    {
        Debug.Print("Checked");
    }
    else if (e.NewValue == CheckState.Unchecked)
    {
        Debug.Print("Un-Checked");
    }
}

Прежде чем устанавливать / сбрасывать элементы программно, вы должны добавить строку:

this.checkedListBox1.ItemCheck -= this.checkedListBox1_ItemCheck;

и после того, как элементы были установлены / сбросить вас в коде, заново добавить обработчик событий с помощью:

this.checkedListBox1.ItemCheck += this.checkedListBox1_ItemCheck;
7
задан Yan Sklyarenko 11 January 2016 в 13:15
поделиться

4 ответа

По моему опыту, парафин Джона Роббинса решает многие проблемы с tallow.exe (heat .exe в v3). Я не уверен, что Paraffin хорошо играет с v3, но, возможно, стоит проверить.

К вашему сведению, я использовал Paraffin в процессе сборки, и это позволило мне удалить предыдущий процесс очистки на 2-3 шага, который включал скрипт powershell.

2
ответ дан 7 December 2019 в 16:46
поделиться

Спасибо за предысторию, я не знал, что они работают над новой версией Wix. Согласно странице проекта, это еще не RTM, так что это может объяснить ваши проблемы. Я надеюсь услышать от разработчиков WIX в одном из ответов.

Я не могу помочь вам использовать функции Heat.exe в стадии разработки. Тем не менее, я был в вашей ситуации, и мое решение состояло в том, чтобы создать инструмент, который использовал бы информацию о каталогах и файлах в качестве входных данных и генерировал действительные файлы проекта wix в качестве выходных данных. Файл .vsproj - это просто файл XML, и вы можете использовать XSL, LINQ в C #, PowerShell или ряд других инструментов для выполнения этой работы. Я лично использовал (pre-LINQ) C # / XMLDOM для анализа файлов проекта VS с этой целью.

Удачи,

Дейв

0
ответ дан 7 December 2019 в 16:46
поделиться

Для получения информации об обновлении автоматически сгенерированных настроек прочитайте это . Возвратное сообщение:

Установщик Windows не позволяет вам удалить компоненты при незначительном обновлении

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

Если у вас есть некоторые автоматически сгенерированные компоненты, просто придерживайтесь крупных обновлений. Вы можете использовать этот образец Робом в качестве примера.

1
ответ дан 7 December 2019 в 16:46
поделиться

Для получения документации ознакомьтесь с файлом справки, установленным с WiX - WiX.chm предоставляет самая актуальная информация (вместе с параметром командной строки -help ).

0
ответ дан 7 December 2019 в 16:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: