Я создал клиентское серверное приложение на С++ с помощью Visual Studio. Теперь я хочу запустить клиентский exe файл на другом компьютере (который не имеет установленной Visual Studio) но когда я пытаюсь запустить exe файл, он выдает следующее сообщение об ошибке:
Это приложение не удалось запустить, поскольку приложение неправильная конфигурация. Повторная установка приложения может исправить это проблема.
Как я могу запустить exe файл, не устанавливая ничего на компьютере?
Karen123456 08 март 2013, в 17:03
Поделиться
Есть ли на компьютере правильная версия библиотеки времени выполнения C. Часто встречается inlcude msvcrtXX.dll, где XX — номер версии. в установочном пакете.
j.karlsson 08 март 2013, в 15:20
Поделиться:
visual-studio
visual-studio-2008
5 ответов
Лучший ответ
Я развернул свою программу в версии вместо debug, и exe теперь работает на другом компьютере
Karen123456 11 март 2013, в 16:34
Поделиться
Приложения, созданные с помощью Visual Studio, зависят от Visual С++ Redistibutable (VCRedist). Когда программа динамически связана, тогда ваши двоичные файлы понадобятся MSVCR**.dll (Microsoft C Runtime Library).
НЕ ЗАПУСКАЕТСЯ PRO100 [РЕШЕНИЕ ПРОБЛЕМЫ]
В MSDN есть хорошая статья под названием Перераспределение файлов Visual С++ (для Visual Studio 2008), в котором указывается, временные ошибки в случае, если требуемая библиотека Visual С++ не установлена:
- Приложению не удалось правильно инициализировать (0xc0000135).
- Это приложение не удалось запустить, так как неправильная конфигурация приложения. Повторная установка приложения может устранить эту проблему.
- Система не может выполнить указанную программу.
- Самое простое решение — изменить динамическое связывание библиотек времени выполнения со статической связью. Перейдите к свойствам проекта, а в разделе C/С++ > Code Generation вы найдете вариант Runtime Library. Вам нужно изменить его с Multi-threaded DLL (/MD) на Multi-threaded (/MT) .
- Еще одно возможное решение — убедиться, что на целевой машине установлена правильная версия Microsoft VС++ Redistributable Package.
Но ваше приложение может зависеть и от других DLL. Если вы хотите узнать, каковы зависимости вашей программы, есть большая утилита, называемая Dependency Walker, что поможет вам в этой и многих других ситуациях:)
LihO 08 март 2013, в 16:15
Поделиться
+1 за предложение статической связи. Это реальный ответ на вопрос ОП (как запустить без установки чего-либо). depends — отличный инструмент, чтобы выяснить, какие библиотеки отсутствуют.
Nate Hekman 08 март 2013, в 15:32
Ваш второй пункт не помогает ОП, потому что она имеет ограничение, что она не может ничего установить на целевой машине. Есть также более двух решений — см. Ответ Наяны.
JBentley 08 март 2013, в 16:50
извините, но я не могу перейти от DLL. а также я пытаюсь запустить EXE-файл, не устанавливая что-то на другом компьютере
Karen123456 11 март 2013, в 14:41
Показать ещё 1 комментарий
Фон:
- Приложения на С++ Требуются сборки времени выполнения (DLL) для запуска на любом компьютере Windows.
- Обычно эти сборки времени выполнения находятся в каталоге C:WindowsWinsxs.
- Все операционные системы Windows по умолчанию имеют несколько сборок времени выполнения.
- Но если ваше приложение разработано в более новой версии среды сборки во время выполнения, целевому компьютеру также нужна такая же версия времени выполнения.
- Когда вы устанавливаете визуальную студию, вы получаете самые новые версии сборок во время выполнения.
Soloution: Наконец, в любом случае целевой компьютер должен иметь точные сборки времени выполнения. Существует несколько способов сделать это (для более детального поиска в google каждый).
- Статически связывать сборки времени выполнения с вашим приложением (Troublesome для большого приложения).
- Установить среду перераспределения С++ на конечном компьютере (наиболее простой способ).
- Создание проекта установки для развертывания времени выполнения на целевом компьютере при установке приложения. (Неплохо)
- Развертывание сборок в виде частных сборок (профессиональных) см. здесь для более подробной информации
Условия:
- Вы не должны использовать .NET framework в своем приложении.
- Вы не должны использовать поддержку времени выполнения для вашего приложения
Nayana Adassuriya 08 март 2013, в 16:24
Поделиться
Никогда или новее?
BBagi 08 март 2013, в 15:46
Nayana Adassuriya 08 март 2013, в 15:47
На мой взгляд, это должен быть принятый ответ, потому что он единственный, кто упоминает вариант приватных сборок. Некоторые из других ответов совершенно неверны, потому что они утверждают, что есть только два варианта (и один из этих вариантов бесполезен для OP, потому что у нее есть ограничение не устанавливать что-либо на целевой машине).
JBentley 08 март 2013, в 16:48
Я попытался Развертывание сборок во время выполнения и установка C ++ перераспределения, но я все еще получаю ту же ошибку
Karen123456 11 март 2013, в 14:39
Хорошо, я сейчас вам помогу, так что вы должны ответить мне быстро :), ваше приложение содержит только один exe или оно включено в любые другие DLLs ?
Nayana Adassuriya 12 март 2013, в 01:08
Показать ещё 3 комментария
Я не видел эту конкретную ошибку раньше, обычно это ошибка вокруг отсутствующей DLL (окна распространяются). Предполагая, что на самом деле нет проблемы с конфигурацией, у вас есть два варианта:
1) Измените режим компиляции из многопоточной библиотеки DLL на многопоточную. Это можно сделать из раздела С++ свойств проекта при генерации кода. В многопоточном режиме ваш двоичный файл будет статически связан с перераспределяемыми окнами. Это, вероятно, то, что вы хотите.
2) Установите окна, распространяемые на целевой машине. Возможно, это не нормально, вы заявляете, что не хотите устанавливать что-либо на целевой машине.
Предупреждение об опции 1, разные версии окон имеют разные версии распространяемого. Возможно встретить узкоспециализированную среду, в которой статически связанная программа не будет вести себя так, как ожидалось.
john.pavan 08 март 2013, в 17:23
Поделиться
Есть более двух вариантов. Смотрите ответ Наяны.
JBentley 08 март 2013, в 16:49
Похоже, что вам не хватает некоторых DLL файлов. Обязательно скопируйте соответствующую dll вместе с exe.
mag_zbc 08 март 2013, в 16:42
Поделиться
Похоже, ему не хватает динамических библиотек VC ++. Он спрашивает, как он может отправить exe без них, и поэтому ваш ответ не поможет.
Caesar 08 март 2013, в 15:22
Ответ действительно помогает, если отсутствующая зависимость не распространяется C ++. Вы понимаете, что программисты могут использовать все виды библиотек, не только MSVC, верно?
Sheng Jiang 蒋晟 08 март 2013, в 16:22
JBentley 08 март 2013, в 16:45
Была такая же проблема. Любой .dll, необходимый вашему приложению, помещается в папку Release. Поэтому, когда я скопировал только .exe, он не открылся, потому что искал .dll. Принесите свои .dll с .exe или удалите зависимость, если можете.
Russell 15 нояб. 2016, в 22:05
Показать ещё 2 комментария
Ещё вопросы
- 1 String.split, преобразование строк в int
- 1 данные с функцией return против возврата простого объекта данных
- 1 Вставить HTML в столбец Helper WebGrid
- 0 Независимые куки в разных папках
- 1 разобрать строку в JSON в узле JS Express
- 0 PHP в JavaScript с помощью кнопки «Отправить»
- 0 Magento добавляет пользовательское сообщение об ошибке
- 0 Добавление дополнительного класса с помощью ng-class
- 0 Код Jquery для разделения ссылки href
- 0 Variable + Wildcard удаление изображения
- 0 Символ PortAudio не найден: _PaMacCore_SetupChannelMap на Mountain Lion
- 1 Как использовать атрибут «android: inputMethod»?
- 0 Spring boot schema.sql не работает с файлом mysqldump
- 0 Scanf и строки в C ++
- 1 Очевидное загрязнение несколькими прокси-объектами для одной цели
- 1 Приложение возвращается к неправильной активности после выхода из намерения камеры
- 0 Выпуск отладочной проблемы сборки
- 1 Android Dialog не возвращается к низу при отклонении софт-клавиатуры
- 0 XChat 2 возвращает «No xchat_plugin_init symbol» для библиотеки DLL
- 1 Python или bash-скрипт: если паттерн в строках между двумя одинаковыми маркерами, убрать строки и первый маркер
- 1 Как разделить длинную сопрограмму без использования await?
- 0 Как изменить данные JSON в Angularjs
- 0 Разница между SELECT COUNT (*) и SELECT true при поиске конкретной строки в таблице миллиардов строк
- 1 просмотреть и скачать файл из sql db с помощью Entity FrameWork
- 1 Озадаченный чем-то в методе .reduce () (Javascript)
- 1 Использование lengthOf.at.least в утверждениях Чейса [дубликата]
- 1 Эрланг считает, что возраст?
- 1 showSoftInputFromInputMethod устарела для Android P API 28
- 1 Как проверить, что сервер принимает соединения
- 1 Спиннер не работает в моем фрагменте Kotlin
- 0 Выяснить параметр Вставить функцию для связанного списка?
- 1 Storage Access Framework: сохранить права доступа к файлам после отзыва дерева разрешений
- 0 Скрыть родительский вид при отображении вложенных представлений
- 0 Как использовать оператор управления (оператор if) во вложенной директиве ng-repeat?
- 1 Как работает метод PIL getbbox?
- 0 HTML таблицы и столбца
- 1 c # Сохранить панель макета потока
- 1 Увеличение на ввод пользователя
- 0 Оператор удаления MySQLi не удаляет
- 0 Перетаскивание по требованию. Как включить, запустить и продолжить перетаскивание всего в одном событии mousedown?
- 1 Произведите рандомизацию начальной точки воспроизведения в html5 Audio on toggle
- 0 Проверка существования ребра на неориентированном графе с использованием библиотеки графов лимонов
- 1 Использование PowerShell в качестве двоичного файла CGI в IIS Express
- 1 Как определить регулярное выражение
- 0 Как preg_match, что число делится на 6,5 с помощью регулярного выражения
- 0 При создании новой комнаты сделайте $ location.path (‘/’ + roomNumber); Как я могу создать новый маршрут, когда пользователь создает новую комнату?
- 1 Grails не собирает скомпилированные файлы Java .class
- 1 лишние пробелы перед печатным текстом Java
- 0 Даже после autoplay = «false» preload = «none», видео запускается без нажатия кнопки воспроизведения
- 0 Пул объектов — создание объектов позже не работает
Источник: overcoder.net
Не запускается приложение на другом компьютере
Думаю, что-то с зависимостями, но все dll, которые были в папке скомпилированной программы, я перекинул на другой компьютер, но приложение все равно не запускается. .Net framework, конечно, обновлял. Есть ли способ проверить, в чем проблема?
Отслеживать
11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
задан 21 мар 2015 в 18:20
375 5 5 серебряных знаков 13 13 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Если .Net Framework на компах совпадает и все dll вы скопировали, я предполагаю следующее:
- Возможно, программа ожидает в GAC какую-то особую dll.
- Возможно, программа написана с хардкодной привязкой на определённую структуру каталогов или файлов (к примеру, выполнение жёстко завязано на наличие какой-нибудь папки по определённому пути).
В обоих случаях решение возможно при наличии доступа к исходникам (найти зависимость в GAC и добавить недостающую библиотеку или узнать о «волшебной папке»).
Отслеживать
11 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
ответ дан 22 мар 2015 в 15:38
116 3 3 бронзовых знака
Вероятно, вам нужно собрать свой проект со всеми зависимостями в один пакет (исполняемый файл, если угодно). Делается это с помощью ILMerge. Процесс довольно несложный, как правило, ограничивающийся использованием стандартного BAT-скрипта от Microsoft. Подробнее вот здесь.
Источник: ru.stackoverflow.com
Не запускается программа на другом компьютере
Казалось бы еще одна тема))
Я недавно начал изучать C#, выбрал несколько книг и одна из них — Head First C# — так вот в ней есть лабараторная работа 1.
Только недавно сделал ее, но программа отказывается работать на других ПК (все мои предыдущии программы работали отлично — отличаи только в том, что она более массивная и используются 2 картинки)
Я перелопатил кучу форумов, но там в основном решение находили черз подключение всех нужных библиотек или создание установщика. Но я думаю что может именно из-за картинок и не работает.
Прошу помощи разобраться в этом деле — весь день убил, но так и не нашел решения.
Прикрепляю сам проект — может, кто что увидит.
P.S. везде стоит 4 framework
Вложения
Laba-Races.rar (487.9 Кб, 17 просмотров) |
Регистрация: 29.09.2009
Сообщений: 9,742
Laba-Races.rar |
не надо, лучше скрин ошибки на тех ПК приведите.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer 12.08.2012 в 20:24 .
Источник: www.programmersforum.ru