библиотека пользовательских действий в управляемом коде

#.net #installation

Вопрос:

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

Комментарии:

1. должен сказать, я нахожу это чертовски полезным, если ты все еще смотришь blog.torresdal.net/2008/09/03/WiXAndDTFIntroduction.aspx

Ответ №1:

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

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

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

Ответ №2:

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

C : Самый мощный язык для программирования на платформе .NET Framework

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

Ответ №3:

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

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

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

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

Ответ №4:

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

Блок-цитата

Хотел бы я узнать больше о вашей конкретной ситуации, но как Генеральный совет, вас может выглядеть в C /CLI для вопросов, связанных с неуправляемые/управляемые совместимость: с : самый мощный язык .Объем платформы программирования я знаю из опыта, что я могу «поднять» неуправляемого кода на с /CLI для проекта, где я могу использовать его с любой c#/.ЧИСТЫЙ/управляемый код, но, похоже, вы хотите сделать обратное: перенести управляемый код в проект C /CLI, а затем связать его с некоторым неуправляемым кодом и представить его как традиционную неуправляемую DLL (или двоичный файл установщика). Я не уверен, возможно ли это в C /CLI.

Блок-цитата

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