Состояние операционной системы WIX Всегда верно

У меня есть DLL, которую нужно установить в определенную папку, в зависимости от того, на какую ОС я устанавливаю.

Для XP он установлен в system32, а в Win7 - в SysWow64.

Решение - C#, и я использую проект развертывания.

В проекте развертывания, используя редактор файловой системы, я добавил и system32, и SysWow64 с DLL внутри обоих.

На уровне папки я использую поле условия для создания папки /dll или нет.

Для System32 у меня есть условие [CDATA[VersionNT = 501]]

Для SysWow64 у меня есть условие [CDATA[VersionNT = 601]]

Я обнаружил, что DLL будет вставляться только в системах XP, но папка SysWow64 и DLL будут создаваться в обеих операционных системах.

Я пробовал разные варианты, но я не могу понять, где я иду не так.

Я получил информацию об условиях из этой ветки Как проверить, установлена ​​ли система Windows 7 или Windows Server 2008 R2 в Wix Installer?

Образ проекта развертывания и состояния

1 ответ

Решение

Извините за задержку, мне пришлось ждать 8 часов, прежде чем я смог ответить на свой вопрос.

Коренная проблема была глупой ошибкой.

Я перестраивал решение каждый раз после внесения изменений в проект развертывания. Я должен был щелкнуть правой кнопкой мыши по проекту развертывания и выбрать его создание. Спасибо за помощь.

Я бросил WIX <!CDATA[ ] части в поле условия, как сказал [Damien_The_Unbeliever][1], а также добавили условие в DLL, а не просто в папку.

Другие вопросы по тегам