2014-07-23 4 views
2

Кто-нибудь знает способ включить DLL, чтобы моя DLL собственного действия могла использовать ее, поскольку она зависит от нее. Мне просто нужен способ объединить DLL в MSI и распаковаться во временную папку установки вместе с настраиваемой DLL. Если он есть, то DLL пользовательского действия сможет найти его и, таким образом, сможет работать.Пользовательские действия DLL, зависящие от другой DLL

Я прочитал он-лайн, чтобы добавить его в качестве ссылки и установить локальное свойство copy top true, но это не представляется возможным, если есть другой способ, я был бы признателен.

+0

Можно ли статически связывать DLL, чтобы избежать зависимости от времени выполнения? Я сделал это несколько раз, установив параметры компилятора в Visual Studio. –

+0

Что это за действие? Может ли он работать отложенным (системный контекст) или он имеет дело с пользовательским профилем или местоположениями данных пользователя? –

ответ

0

WIX Toolset позволяет создавать управляемые (.net) пользовательские действия с использованием функции Foundation Tools (DTF). Полное визуальное студийное решение может быть выведено в одну dll, готовую для встраивания в двоичную таблицу MSI. Во время выполнения все распаковывается и выполняется автоматически. Для меня это была спасательная жизнь, так как она позволяет очень легко создавать чрезвычайно мощные пользовательские действия (здесь применяются стандартные предупреждения о том, что вы делаете глупые вещи в пользовательских действиях). Подход DTF очень элегантный, прост в использовании и работает надежно.

Поскольку у вас, предположительно, уже есть работающая настраиваемая DLL действия, возможно, вы можете создать небольшое настраиваемое действие DTF, которое вызывает методы в вашей существующей dll? Если ваша dll может быть указана узлом .net, это должно быть возможно. Когда вы создаете проект пользовательских действий в visual studio, он должен всасывать все ссылки и упаковывать их в выходную dll.

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