|
|
|
Forum Guru
      
участник
Last Login: 16.05.2007 18:38
Сообщ.: 68,
Visits: 382
|
|
Поделитесь опытом установки приложенией, собранных на VS 2005, пожалуйста.Никак не получается. Уже решил все сделать с нуля. Создал в VS2005 просто пустое мультидокументное приложение и решил на его примере тестировать дистрибутив. Попытка первая. Собрал релиз, положил его в папку c:\temp (например) Туда же положил файлы из C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.MFC: Microsoft.VC80.MFC.manifest mfc80.dll mfc80u.dll mfcm80.dll mfcm80u.dll Теперь смотрю при помощи утилиты Dependency Walker и вижу, что библиотека mfc80u.dll подгружается из C:\windows\winsxs\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2, а отнюдь не из каталога, где расположена программа. Соответственно, если я буду устанавливать программу на машине, с отсутствующим каталогом C:\windows\winsxs\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2 и файлами в нем, то программа не будет запущена :-( В порядке эксперимента переименовываю в этом каталоге файл mfc80u.dll и, действительно, программа при загрузке сообщает: "Ошибка при инициализации приложения (0х0000034)..." Попытка вторая. В манифест программы, который встроен в ресурсы пишу: <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.VC80.MFC' version='8.0.50727.42' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> <file name="mfc80.dll"/> <file name="mfc80u.dll"/> <file name="mfcm80.dll"/> <file name="mfcm80u.dll"/>
Теперь Dependency Walker показывает мне, что модуль mfc80u.dll вызывается из того же каталога, что и главный модуль программы. Отлично, все эти файлы здесь и лежат. Но! Теперь сообщение при запуске: "Приложение не было запущено, поскольку оно некорректно настроено..." Я уж читал-читал про этот side-by-side. Не сомневаюсь, что там в документации все написано... Но никак не могу разобраться. Помогите, пожалуйста. Тащить с дистрибутивом три варианта Microsoft Visual C++ 2005 Redistributable Package для x86, IA64 и x64, жутко не хочется...
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
в VS 2005 встроенна утилита для упаковки и создания msi-инсталяторов, попробуйте ее, я обычно так поступаю
Удачи,
Владимир
|
|
|
|
|
Forum Guru
      
участник
Last Login: 16.05.2007 18:38
Сообщ.: 68,
Visits: 382
|
|
| Спасибо за совет. Про MSI я уже думал, но вдруг так не хочется менять инсталлятор. Думал разобраться - что же он там делает, куда пишет в реестр и что, чтобы сделать средствами InnoSetup при установке. Понятно, что эти библиотеки надо как-то регистрировать как side-by-side. Но вот как... Был бы мой английский лучше, разобрался бы. А так читаю-читаю, через слово понимаю, но разобраться пока так и не смог. Статическая линковка библиотек не желательна в моем случае.
|
|
|
|
|
Forum Guru
      
участник
Last Login: 16.05.2007 18:38
Сообщ.: 68,
Visits: 382
|
|
boombastik (08.03.2007) в VS 2005 встроенна утилита для упаковки и создания msi-инсталяторов, попробуйте ее, я обычно так поступаю
А проекте, созданном при помощи Windows Installer, какие, например, свойства выставлять для файла mfc80u.dll? Чтобы он зарегистрировался в side-by-side... Куда его писать? И т.п. Хотя, лучше бы, конечно, все сделать без Windows Installer, а уже привычными средствами.
|
|
|
|