Должны ли пользовательские DLL-файлы action для установщика msi создаваться только с помощью Visual Studio?

StackOverflow https://stackoverflow.com/questions/949430

Вопрос

Я создал установочный проект с помощью Visual Studio.Мне также нужны некоторые созданные пользовательскими действиями DLL с Visual c ++, и это работает просто отлично, но я не хочу включать файлы среды выполнения visual c ++ в свой проект.Итак, возможно ли собрать эту dll с помощью какого-либо другого компилятора c ++?

Я пытался сделать это с помощью Dev-c ++, но при компиляции я получаю несколько сотен ошибок компиляции из файлов msi.h и msiquery.h

Это было полезно?

Решение

Вероятно, самое простое решение - связать ваши библиотеки DLL со статической библиотекой времени выполнения.

Другие советы

В общем случае пользовательские библиотеки DLL действий должны полагаться только на библиотеки DLL, которые уже были в системе до установки.Это означает, например, статическое связывание CRT, как отмечено MSalters, но также применимо к любой другой зависимости от сторонних библиотек.

Другой вариант - установить связь с операционной системой CRT, как объясняет Коби Кахане здесь.

Я создал пользовательскую библиотеку dll для своего установочного проекта.Моя dll очень проста, регистрирует несколько сервисов, не зависящих от CLR или какой-либо сторонней библиотеки.Имеют статическую связь только с msi.lib.

Я удалил предварительные требования к установщику .net и Windows из проекта установки.Моя настройка завершается с ошибкой на компьютерах Mac, не имеющих .net framework ..?

Поскольку у меня нет никакого .net-зависимого кода, каким должно быть решение этой проблемы.Я не хочу, чтобы пользователь сначала загружал фреймворк для установки.

С уважением Амит

здесь вы можете найти несколько коротких примеров использования C ++ DLL для пользовательских действий:

http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top