2008-08-29 2 views
3

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

+1

gotta say Я считаю, что это всегда так полезно, если вы все еще смотрели http://blog.torresdal.net/2008/09/03/WiXAndDTFIntroduction.aspx – Terrance 2011-01-31 23:18:04

ответ

1

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

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

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

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

0

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

C++: The Most Powerful Language for .NET Framework Programming

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

4

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

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

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

0

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

Blockquote

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

Blockquote

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

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