DLL настраиваемого действия в управляемом коде - PullRequest
3 голосов
/ 29 августа 2008

Как я могу вызвать dll с пользовательским действием, написанным в управляемом коде (.net), из установщика без использования неуправляемого посредника?

Ответы [ 4 ]

4 голосов
/ 12 сентября 2008

Ответ на ваш вопрос зависит от того, как вы создаете программу установки.

Для проектов установки Visual Studio создайте класс установщика в одной из развернутых сборок. Это описано в документации MSDN, например http://msdn.microsoft.com/en-us/library/d9k65z2d(VS.80).aspx

Для проектов Wix вы можете использовать DTF для создания управляемых настраиваемых действий, которые имеют полный доступ к содержимому MSI. Wix доступен на http://wix.sourceforge.net/.

0 голосов
/ 10 октября 2008

Джаред - Можете ли вы предоставить некоторую информацию о том, как вы этого добились?

Blockquote

Хотелось бы, чтобы я знал больше о вашей конкретной ситуации, но в качестве общего совета вы могли бы взглянуть на C ++ / CLI для проблем, связанных с неуправляемой / управляемой совместимостью: C ++: самый мощный язык для программирования на .NET Framework По своему опыту я знаю, что могу «поднять» неуправляемый код в проект C ++ / CLI, где я могу использовать его из любого управляемого кода C # / .NET /, но звучит так, будто вы хотите сделать наоборот: поднять управляемый код в C ++ / CLI проект, а затем связать его с некоторым неуправляемым кодом и представить его как традиционную неуправляемую DLL (или двоичный файл установщика). Я не уверен, возможно ли это в C ++ / CLI.

Blockquote

Я застрял в проблеме с этим вопросом прямо сейчас. У меня есть проект, который работает в стандартной MFC VC, но я пытаюсь перенести его в мир C ++ / Cli. Основная проблема, с которой я столкнулся, заключается в том, что я не могу загрузить интерфейс при вызове CoCreateInstance ().

0 голосов
/ 29 августа 2008

Хотелось бы, чтобы я знал больше о вашей конкретной ситуации, но в качестве общего совета вы могли бы взглянуть на C ++ / CLI для проблем, связанных с неуправляемой / управляемой совместимостью:

C ++: самый мощный язык для программирования на .NET Framework

По своему опыту я знаю, что могу "поднять" неуправляемый код в проект C ++ / CLI, где я могу использовать его из любого управляемого кода C # / .NET /, но, похоже, вы хотите сделать наоборот: поднимать управляемый код в проект C ++ / CLI, а затем связать его с неуправляемым кодом и представить его как традиционную неуправляемую DLL (или двоичный файл установщика). Я не уверен, возможно ли это в C ++ / CLI.

0 голосов
/ 29 августа 2008

Существует поддержка именно в .NET / Windows Installer

Создание сборки с использованием VS.NET. Добавьте класс установщика в проект - выберите «Добавить - новый элемент». Выберите класс Intaller. Этот класс является производным от System.Configuration.Install.Installer. Он имеет ряд виртуальных методов, таких как Install (). Это будет вызвано, когда механизм установки Windows во время установки.

Затем эту сборку можно добавить в проект установщика Windows в качестве настраиваемого действия. Метод, используемый для объявления настраиваемого действия как класса установщика .NET, зависит от инструмента, который вы используете для создания установки.

Извините, это немного кратко.

...