2012-02-24 3 views
0

Я успешно реализовал пользовательские действия в моем проекте установки visual studio для шифрования файла app.config, а также для захвата ввода пользователем через текстовые поля. Однако в моем проекте есть ссылки сторонних библиотек DLL, которые я хочу объединить. Я сделал слияние с помощью redgate smart assembly, и после этого, когда я создаю проект установки, используя объединенную сборку с запутанием, во время установки возникает ошибка (не удается получить тип установки для ошибки сборки 1001).visual studio/installshield setup project

Можете ли вы показать мне, как зашифровать app.config и захвата пользовательского ввода через пользовательский диалог с помощью InstallShield

ответ

1

InstallerClass пользовательских действий (InstallUtil) очень хрупкие и никогда не должны использоваться. Проблема, с которой вы сталкиваетесь, скорее всего, что ваша сборка пользовательских действий имеет ссылку на сборку, которая больше не может быть найдена на диске, поскольку она была объединена с другой сборкой.

Эта проблема возникла бы с установкой InstallUtil CA независимо от того, вызвана ли она проектом Visual Studio Setup Project или проектом InstallShield Basic MSI, поскольку проблема не в MSI, а в вашем ЦС.

Я бы посоветовал вам взглянуть на WiX Deployment Tools Framework (DTF). Это гораздо более чистый способ реализации управляемых кодовых пользовательских действий, чтобы CA и все его зависимости отображались как одна родная DLL для установщика Windows. Во время выполнения нативный заглушка извлекает все файлы, запускает ваш код .NET и маршалы всех вызовов API MSI между двумя сторонами для вас.

Он очень чистый и может быть использован в проектах установки, WiX, InstallShield и других средствах разработки MSI, поскольку выход представляет собой простую DLL-версию Win32 с экспортированными функциями stdcall. (Msi Type 1 Custom Action Spec)

+0

thnx для упоминания WiX. Я смотрю на это сейчас и расскажу, решила ли она мою проблему или нет. – jeff

+0

FYI 'dtf custom action' - очень хороший поиск в Google. –

Смежные вопросы