Как я могу выполнить DLL в пользовательском действии в базовом проекте msi installshield?

Я создал проект библиотеки классов на С# и хочу выполнить выходную dll этого проекта в пользовательском действии моего проекта Basic MSI.


person Hardik Kothari    schedule 17.10.2011    source источник
comment
Я нашел способ создать пользовательское действие «Новая стандартная DLL», но все равно выдает ошибку, например «Не удается найти точку входа функции «имя моей функции», убедитесь, что она экспортирована. кто-нибудь, пожалуйста, предложите решение для этого...!!   -  person Hardik Kothari    schedule 17.10.2011


Ответы (2)


Всем спасибо,

Я, конечно, нашел решение. На самом деле ошибка заключалась в том, что я выполнял пользовательское действие New Standard DLL для выполнения C # DLL, но я выбираю пользовательское действие Managed Code, и я могу выполнить свою DLL без каких-либо проблем...

person Hardik Kothari    schedule 18.10.2011

Если вы используете C#, вы можете попробовать создать действие класса установщика. Вот руководство, которое может вам помочь: http://devcity.net/Articles/339/1/article.aspx

Если вы хотите использовать стандартное действие установщика Windows, вам потребуется библиотека DLL win32: http://www.codeproject.com/KB/install/msicustomaction.aspx

person cosmin    schedule 17.10.2011
comment
Спасибо, Космин, но, пожалуйста, не могли бы вы помочь мне с ошибкой, с которой я столкнулся, как указано в комментарии выше..? я определил последовательность выполнения для After Installation Finalized, но я сомневаюсь, что DLL не загружена в этот момент установки.... - person Hardik Kothari; 17.10.2011
comment
Ошибка предполагает, что ваша DLL не поддерживается в качестве настраиваемого действия. Попробуйте создать класс установщика или win32 DLL. - person cosmin; 17.10.2011
comment
То есть вы хотите сказать, что DLL, созданная на C#, не поддерживается в пользовательском действии Installshield...?? - person Hardik Kothari; 17.10.2011
comment
Да, вы не можете использовать любую DLL в качестве пользовательского действия. Это может быть установщик, класс, стандартная DLL (обычно C++) или DLL win32. - person cosmin; 17.10.2011
comment
ооо .... вы можете предложить мне другой способ для этого .. ?? я имею в виду, как я могу создать стандартную DLL или что такое MSI DLL или как я могу использовать MSI DLL..!! - person Hardik Kothari; 17.10.2011
comment
Мой пост включает два предложения, которые поддерживаются пакетами MSI. Вы можете либо создать действие класса установщика, либо DLL win32. Это параметры для пользовательского действия DLL. - person cosmin; 17.10.2011
comment
Хорошо... я добавил класс установщика в свою DLL, что мне теперь делать...?? - person Hardik Kothari; 17.10.2011
comment
Выберите компонент DLL и задайте для атрибута класса установщика .NET значение «Да»: kb.flexerasoftware. com/doc/Helpnet/installshield12helplib/ kb.flexerasoftware.com/ doc/Helpnet/installshield12helplib/ - person cosmin; 17.10.2011