Не удается заставить пользовательское действие Wix работать в Votive / VS2010

StackOverflow https://stackoverflow.com/questions/5836238

Вопрос

Помогите! Мне нужно выполнить управляемое настраиваемое действие в моем проекте установки Wix 3.5, и что бы я ни пробовал, я не могу заставить его работать.

Я использую интеграцию Votive в Visual Studio 2010. Мой файл Wix Product.wxs в основном не отличается от шаблона Visual Studio, за исключением нескольких изменений текста:

родовое слово

Я установил ссылку на свой управляемый проект настраиваемых действий, установил для свойства HARVEST значение true. Проект называется WIX.CustomActions и производит WIX.CustomActions.dll и WIX.CustomActions.CA.dll

Я вижу, что Wix обрабатывает ссылку во время сборки, и сборка кода WIX.CustomActions.dll отображается в двоичной таблице в окончательном проекте настройки, а код WIX.CustomActions.CA.dll - нет.

У меня есть код генерирующего кода, который должен упаковывать и вызывать настраиваемое действие:

родовое слово

Я просмотрел различные источники с практическими рекомендациями в Интернете, и они в лучшем случае сбивают с толку и дают противоречивые советы. Насколько я понимаю, файл CustomActions.wxs представляет собой неуправляемую dll, которая загружает платформу .NET и передает управление «настоящему» управляемому настраиваемому действию. Тем не менее, код WIX.CustomActions.CA.dll не помещается в мой файл MSI. Я как мог следил за примерами, но не вижу, что не так.

Пожалуйста, у кого-нибудь это работает в Votive? Вы можете привести мне реальный рабочий пример?

Это было полезно?

Решение

Вам нужна ссылка (например, CustomActionRef) из вашего продукта на фрагмент;в противном случае умный компоновщик отбрасывает его.

Другие советы

Следуя предложению Боба Арсона, я добавил следующие две строки в верхней части моего файла Product.wxs:

родовое слово

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

Ни в одном из примеров, которые я нашел в Интернете, это требование не упоминалось.Думаю, люди просто перерабатывали полученную мудрость с небольшим пониманием или без него.Вот и ответ, спасибо Бобу!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top