none
Вопросы по redist.txt (распростиранение DLL вместе с программой) RRS feed

  • Вопрос

  • Интересуют файлы: msvcp100.dll, msvcr100.dll. Для них в файле redist.txt есть следующая запутанная информация:

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

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

     

     

    19 апреля 2011 г. 7:24

Все ответы

  • А Вам не подходит вариант использовать эти или аналогичные пакеты?

    Можно, я думаю, сделать инсталлятор, включающие эти (или подобные) пакеты...


    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.
    Отвечающий
  • Дело в том, что мне требуется всего пара DLL из redistributable package. И очень не хочется каждый раз прицеплять к программе 5-метровый redistributable также как и разделять установку на основную программу и redistributable. Хотя последний вариант остаётся наилучшим решением, если по лицензии нельзя положить эти DLL-ки в папку с программой.

    Кроме того у меня есть вопрос, ответ на который я не знаю достоверно точно: если я установлю VC redistributable, каким образом система найдёт именно нужные DLL из winsxs и что самое главное как исключить ситуацию того, что могут быть загружены неверные DLL?  Я знаю только,  что вроде надо создавать Assembly-файл и там прописывать эти DLL и их хеши. Но вот практически я это не пробовал делать пока. Может вы что подскажите?

    А вот если DLL лежат в папке рядом с EXE-модулем, я уверен на 100%, что загрузятся именно они.



  • Visual Studio вшивает манифест в exe-файл, с указанием конкретных версий dll. Посмотри статью http://www.sandywalsh.com/2009/08/microsoft-vc-sxs-assemblies-manifests.html, например.

    Кстати, из-за того же манифеста sxs будет загружать сборки из папки winsxs даже если те же dll лежат в папке с exe-модулем. Что может стать неприятным сюрпризом.


    My blog | My Favorite Project