C # Project 2010, автономный исполняемый файл на другом компьютере - PullRequest
3 голосов
/ 20 июля 2010

У меня есть проект C #, который я создал в Visual Studio Express 2010. В этой программе используется сторонний класс C #, который использует / вызывает C ++ dll.Я просто скопировал filename.dll в папки bin / debug и bin / release папки проекта, и приложение работало нормально.

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

Что может быть причиной этого?И как я могу заставить исполняемый файл релиза работать на другом компьютере?

Спасибо за любые ответы!-Chase

Ответы [ 3 ]

4 голосов
/ 20 июля 2010

Убедитесь, что у вас установлена ​​среда выполнения Visual C ++ (VS2005, VS2008, VS2010).

1 голос
/ 20 июля 2010

Если ваш c ++ dll собран Visual Studio, это может зависеть от CRT, здесь нужно проверить две вещи:

  • Если это зависит от выпуска или отладки ЭЛТ. Microsoft не дает вам права распространять отладочную версию, кроме как для целей отладки, поэтому это может быть проблемой.
  • Версия ведьмы зависит от
    • Последняя версия vs2010 может быть скопирована в тот же каталог, что и исполняемый файл ( msvcp100.dll для c ++ msvcr100.dll для C)
    • Предыдущие версии необходимо было устанавливать как параллельные сборки, поэтому запуск их установки был обязательным (некоторые версии, такие как VS2005, включены в установку фреймворка, но другие, такие как VS2005 SP1, необходимо устанавливать отдельно)

В любом случае лучший способ отладить такие проблемы - это установить на компьютере, имеющем проблемы, Dependency Walker (бесплатно) и сообщить ему, что dll отсутствует.

0 голосов
/ 20 июля 2010

Самым простым (хотя, может быть, и не самым лучшим) решением этой проблемы является добавление проекта установки в ваше решение.Проект установки поможет вам найти любые зависимости и сделать их доступными во время установки.

Необходимо выполнить следующие шаги:

  1. Добавить проект установки в свое решение (находится в разделе Добавить проект ... / Шаблоны настройки)
  2. Щелкните правой кнопкой мыши проект, выберите «Добавить / Вывод проекта ...» и добавьте стартовый проект вашей программы.
  3. Справащелкните проект и выберите «Просмотр / Настраиваемые действия».
  4. Щелкните правой кнопкой мыши корневой узел, выберите «Добавить настраиваемое действие ...» и в «Папке приложения» добавьте «Первичный вывод из [имя вашего проекта здесь»] ".

Теперь при компиляции создается установщик .msi.Запустите этот установщик на другом компьютере, и ваша программа будет установлена ​​и запущена.Чтобы удалить, снова запустите программу установки или удалите программу из «Установка и удаление программ» на панели управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...