Установка публичного свойства в MSI Custom Action - PullRequest
1 голос
/ 14 июля 2010

Можно ли установить открытое свойство (скажем, MYPROPERTY) из пользовательского действия C #? Я могу прочитать свойства с Context.Parameters["MYPROPERTY"], которые я передаю в данные пользовательских действий, но есть ли способ их установить?

Спасибо.

1 Ответ

1 голос
/ 15 июля 2010

Я не знаю, как это сделать. В большинстве случаев это было бы невозможно. Проекты установки и развертывания Visual Studio настраивают свои собственные действия .net для запуска «отложено», то есть они запускаются после удаления объектов установки msi. Вот список возможных операций в этом контексте.

Чтобы убедиться, что ваши пользовательские действия .net выполняются с задержкой, используйте Orca , чтобы открыть файл msi и перейти к таблице CustomAction. Если InstallUtil (служебная библиотека VS, помещаемая VS в таблицу «Binary» MSI и предоставляющая MSI точку входа «C», которая обращается к точкам входа установки сборщика .NET), в качестве действий используется «3073». «Тип», это означает, что они выполняются как отложенное выполнение (3073 - msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate + msidbCustomActionTypeDll.)

Если вы создаете пользовательское действие «C» в DLL и помещаете его в MSI с типом «1», вы можете выполнить его во время последовательности установки и изменить свойства. К сожалению, установочный проект VS не поддерживает это; насколько я могу судить, он запускает каждое пользовательское действие, отложенное до конца.

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