отсутствуют ошибки DLL после создания установщика для моего проекта в Visual Studio 2010 - PullRequest
1 голос
/ 13 апреля 2020

У меня довольно большой проект в Visual Studio 2010

Я могу собрать проект как в режиме отладки, так и в режиме выпуска, скопировать сгенерированный исполняемый файл вместе с пользовательской DLL-библиотекой, которая нужна мне для функции в программе, чтобы другой компьютер, и исполняемый файл работает без проблем

Я пытаюсь сделать установщик для этого проекта в Visual Studio 2010, следуя инструкциям здесь: https://www.technical-recipes.com/2011/how-to-create-an-installer-in-microsoft-visual-studio/

Я не получаю никаких ошибок при сборке установщика и в результате получаю файл setup.exe и msi-файл, но если я устанавливаю свою программу на другом компьютере (не на компьютере разработчика), при попытке запустить мой после установки программы я получаю отсутствующую ошибку api-ms-win-crt-runtime-l1-1-0.dll

Как отладить эту проблему? Поскольку я могу просто скопировать свою версию Release или Debug на компьютер и заставить ее работать, не означает ли это, что все dll-файлы, от которых зависит моя программа, уже существуют на другом компьютере? И если это уже работает, почему не работает версия установщика? Как мне убедиться, что все, что мне нужно для этой программы, включено в установщик?

Мой проект в диалоговом окне MF C использует одну стороннюю библиотеку, для которой у меня есть и .lib, и .dll-файл. Мне нужно сделать это в Visual Studio 2010. Мой компьютер для разработки - Windows 10, 64-разрядная версия Home edition, версия 1909. Установщик, который я сейчас создаю, устанавливает мою программу в папку Program Files (x86).

1 Ответ

1 голос
/ 13 апреля 2020

Stati c Linking MF C: похоже, эта проблема была решена путем статической ссылки на библиотеки MF C. В проекте VC ++: включите настройку: "include MFC in a static library". Это позволяет выполнять статическое c связывание компонентов MF C, устраняя зависимость от общих библиотек.

Это обычные "missing runtime error" - ниже приведены общие c контрольные списки которые включают это в качестве одного из источников проблем с запуском приложения.

MFC

Предупреждение : в общем случае stati c следует избегать связывания, чтобы воспользоваться преимуществами обновлений безопасности для общих файлов DLL с помощью других механизмов обновления.


Короткая версия : в Visual Проекты установщика Studio, проверьте, доступна ли среда выполнения Visual C ++ в списке предварительных требований.

См. Этот ответ , вот быстрый снимок экрана:

VC++ Runtime


Инструменты : Если ваш проект большой, вы можете рассмотреть другой инструмент MSI . Есть много ограничений для проектов установщика Visual Studio .

Модули слияния : Существуют модули слияния для установки среды выполнения Visual Studio C ++, но по этим причинам рекомендуется использовать setup.exe .


Visual C / C ++ Runtime : Вы, вероятно, просто отсутствует среда выполнения Visual Studio C / C ++. Он должен быть развернут вместе с вашим приложением, по умолчанию его там нет (если только вы не статически связываетесь, в этом случае это не нужно). Просмотрите этот список быстро для других идей .

Вы можете загрузить распространяемые файлы VC ++ по адресу ("The latest supported Visual C++ downloads"):

Дополнительная информация :


Вторичные ссылки :

...