Развертывание без установщика - PullRequest
2 голосов
/ 31 мая 2010

Я делаю очень маленькое приложение для Windows, состоящее из одного исполняемого файла. Поскольку программа будет находиться на SD-карте, я хочу, чтобы приложение было как можно более автономным, и я бы предпочел не иметь установщика. Я бы хотел, чтобы пользователь мог просто скопировать исполняемый файл на SD-карту и сразу запустить его, не занимаясь чем-либо дополнительным. Проблема тогда становится фактом, что моя программа скомпилирована с VS 2008, который требует версий CRT, который я не могу гарантировать, установлен. Я статически связываюсь с ЭЛТ, который, как я неправильно думал, обойдет эту проблему. Я думал о поиске более старой версии VS, но у меня такое ощущение, что это неправильный путь. Я хочу, чтобы программа работала на новой установке Windows XP и выше.

Благодарен за любую помощь.

Ответы [ 2 ]

3 голосов
/ 31 мая 2010

Статическая связь с ЭЛТ с использованием /MT или /MTd (для отладки) должна делать именно то, что вам нужно.

Тот факт, что это не говорит о том, что есть еще что-то, что зависит от динамической библиотеки. Это будет иметь место, если у вас есть несколько дополнительных библиотек DLL, которые не скомпилированы со статическим CRT.

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

Другой подход - запустить ваш exe-файл из отладчика и посмотреть, какие DLL загружаются в окне вывода. В зависимости от того, какие файлы.exe загружены при запуске, это может дать вам некоторые дополнительные зависимости, которые загружаются только во время выполнения.

1 голос
/ 31 мая 2010

Если вам нужна ссылка на версию DLL библиотек CRT и вы хотите избежать установки чего-либо, вам необходимо скопировать каждый элемент сборки CRT в ту же папку, что и исполняемый файл. Возможно, это не тот способ, которым Microsoft подталкивает вас, но он действителен и работает.

В каталоге установки Visual Studio 2008 вы должны найти папку: VC\redist\x86\Microsoft.VC90.CRT. Если вы скопируете все содержимое этой папки (включая файл манифеста) в тот же каталог, что и ваш исполняемый файл, вы сможете запустить исполняемый файл из этого расположения.

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