Довольно частое явление когда у клиента девственно чистый компьютер - в смысле без Visual Studio, а вам необходимо запустить debug версию вашего приложения на C++ для отладки например. Если ваша сборка использует динамическую линковку системных DLL, то почти наверняка ваше приложение не загрузится. Скорее всего причина кроется в том, что у клиента не установлен Visual C++ Redistributable Package. На сайте Microsoft лежат такие package, но только для release, для debug вы их там не найдете:
Microsoft Visual C++ 2005 Redistributable Package (x86)
Microsoft Visual C++ 2005 Redistributable Package (x64)
Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
Microsoft Visual C++ 2005 SP1 Redistributable Package (x64)
Microsoft Visual C++ 2008 Redistributable Package (x86)
Microsoft Visual C++ 2008 Redistributable Package (x64)
Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)
Так как же быть? Создадим такой package сами. Открываем Visual Studio, создаем новый solution. В диалоге выбора типа проекта выбираем Other Project Typoes
Setup Project. Потом добавляем необходимые merge module в проект и компилируем. Учтите, что для каждой платформы будь то x86 или x64 необходимо создать свой project в solution. Не забываем добавлять соответствующие policy. В х64 вариант обьязательно добавляем merge module для x86. Ниже приведен список необходимых merge module для:
Visual Studion 2005 (DebugCRT x86)
Microsoft_VC80_DebugCRT_x86.msm
policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
Visual Studion 2005 (DebugCRT x64)
Microsoft_VC80_DebugCRT_x86.msm
Microsoft_VC80_DebugCRT_x86_x64.msm
policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
policy_8_0_Microsoft_VC80_DebugCRT_x86_x64.msm
Visual Studion 2008 (DebugCRT x86)
Microsoft_VC90_DebugCRT_x86.msm
policy_9_0_Microsoft_VC90_DebugCRT_x86.msm
Visual Studion 2008 (DebugCRT x64)
Microsoft_VC90_DebugCRT_x86.msm
Microsoft_VC90_DebugCRT_x86_x64.msm
policy_9_0_Microsoft_VC90_DebugCRT_x86.msm
policy_9_0_Microsoft_VC90_DebugCRT_x86_x64.msm
Если вы используете MFC, то дополнительно добовляете MFC merge module в соответствующий проект по аналогии - имена должны содержать DebugMFC.
Остается только скомпилировать ваш solution и в результате вы получите msi для установки на компьютере клиента. Рекомендую также правильно и солидно назвать исталляцию и сменить имя msi файла, чтобы на стороне клиента это все не выглядело поделкой на коленке.
P.S. Стиль когда нужные сисетмные DLL кладутся в проект рядом с вашим приложением на мой взгляд является анахронизмом, хоть и работает. С другой стороны мне несложно придумать конфигурацию, когда такой фокус уже не прокатит. Самый простой пример: ваше приложение для x86 и для x64 лежат в одном каталоге.
P.P.S Все доступные merge module хрянятся в "%CommonProgramFiles%\Merge Modules".
Cсылка на источник: http://workblog.pilin.name/2009/02/debug-visual-c-redistributable-package.html
Автору огромный Респект!
четверг, 27 января 2011 г.
Апгрейд Windows XP Home до Professional без переустановки
Сегодня я расскажу вам о способе, который позволяет без переустановки проапгрейдить Windows XP Home до Professional. Официально, это невозможно, а значит способ этот не совсем легитимный, хотя может использоваться и на вполне законных основаниях. Под законными основаниями я подразумеваю, что Вы каким-то образом раздобыли лицензию для XP Pro - купили, украли, нашли...неважно. Если у Вас есть лицензия, Microsoft не будет против. Другое дело, если лицензии у Вас нет, то есть, фактически, вы злобно хачите Windows, лишая мелкомягких своих кровных. В таком случае, Microsoft наказывает. Жестоко наказывает! А именно, Вы лишаетесь и той лицензии, которой обладаете, то есть Ваша Windows становиться пиратской. Хотя кому я это говорю - в стране, где 99% софта тупо тырится, этим никого не проймёшь.
Довольно слов, перейдем к делу
ЗЫ Прочтите следующую информацию, дабы избежать недоразумений при выполнении 2-го пункта инструкций.
Для дублирования настроек Windows важной информации по драйверам, сервисам и т.д. в ветвях реестра — появились ветви реестра
HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET001, HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET002 и так далее
Каждая из этих ветвей содержит в себе конфигурацию системы в разные моменты времени, а ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET является лишь ссылкой на один из приведенных подразделов реестра Windows которая загружена в тек.момент.
В ветви HKEY_LOCAL_MACHINE\SYSTEM\SELECT есть параметры.
Default - определяет какая копия раздела CONTROLSET будет загружена при нормальной загрузке системы
Current - определяет номер текущей копии раздела CONTROLSET, на которую ссылается подраздел CURRENTCONTROLSET.
LastKnownGood - параметр копии раздела COTROLSET, при использовании альтернативной загрузки ЗАГРУЗКА ПОСЛЕДНЕЙ УДАЧНОЙ КОНФИГУРАЦИИ
Failed - параметра определяет раздел COTROLSET, при предыдущей загрузке которого произошел какой-то сбой, и загрузка была прервана.
Ссылка на источник: http://www.mydigitallife.info/2008/06/13/convert-and-upgrade-windows-xp-home-to-professional-without-reinstalling/
Довольно слов, перейдем к делу
- Откройте редактор реестра - выполните команду "regedit"
- В редакторе откройте раздел HKEY_LOCAL_MACHINE/SYSTEM/ControlSet00X/Control/ProductOptions, где X - самое большое число.
- Удалите ключ ProductSuite
- Создайте новый ключ типа DWORD с именем Brand
- Назначьте созданному ключу значение 0
- Перезагрузите систему
- При перезагрузке, после появления экрана BIOS, нажмите F8, чтобы попасть в меню загрузки Windows
- Выбирите раздел Last Known Goog Configuration(LNG) и нажмите Enter
ЗЫ Прочтите следующую информацию, дабы избежать недоразумений при выполнении 2-го пункта инструкций.
Для дублирования настроек Windows важной информации по драйверам, сервисам и т.д. в ветвях реестра — появились ветви реестра
HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET001, HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET002 и так далее
Каждая из этих ветвей содержит в себе конфигурацию системы в разные моменты времени, а ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET является лишь ссылкой на один из приведенных подразделов реестра Windows которая загружена в тек.момент.
В ветви HKEY_LOCAL_MACHINE\SYSTEM\SELECT есть параметры.
Default - определяет какая копия раздела CONTROLSET будет загружена при нормальной загрузке системы
Current - определяет номер текущей копии раздела CONTROLSET, на которую ссылается подраздел CURRENTCONTROLSET.
LastKnownGood - параметр копии раздела COTROLSET, при использовании альтернативной загрузки ЗАГРУЗКА ПОСЛЕДНЕЙ УДАЧНОЙ КОНФИГУРАЦИИ
Failed - параметра определяет раздел COTROLSET, при предыдущей загрузке которого произошел какой-то сбой, и загрузка была прервана.
Ссылка на источник: http://www.mydigitallife.info/2008/06/13/convert-and-upgrade-windows-xp-home-to-professional-without-reinstalling/
Автор:
Андрей Кузнецов
на
15:12
0
коммент.
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
Ярлыки:
Windows
Подписаться на:
Сообщения (Atom)