Forums.Avtograd.Ru: Создание инсталлятора на базе MSI с помощью WIX - Forums.Avtograd.Ru

Перейти к содержимому

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Создание инсталлятора на базе MSI с помощью WIX

#1 Пользователь офлайн   Terror

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 512
  • Регистрация: 01 Ноябрь 07

Отправлено 04 Декабрь 2007 - 14:54

Долго я пытался понять как создавать дистрибутивы с помощью MSI. Разобрался, хочу поделиться, возможно это будет для кого-то полезным.

И так, нам понадобятся:
1. MS Visual Studio (хотя можно и без нее, но будет немного сложнее)
2. Project Aggregator
3. Wix версии 3

Пункты 2 и 3 лежат по адресу http://wix.sourceforge.net/releases/ забираем самые последние версии, устанавливаем сначала Project Aggregator, затем Wix и можно приступать к созданию дистрибутива.

Запускаем студию, Новый проект, после устуновки Wix в дереве проектов добавится пункт Wix, выделяем, выбираем пункт Wix Project, задаем название и расположение проекта и жмем ОК. Все, рыба (заготовка под проект) готова.

Созданный файл представляет из себя XML, который описывает характеристики создаваемого дистрибутива. У меня получилось следующее:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
		<Product Id="5614c207-34bc-4757-900f-c29671291756" Name="[b]PUT-PRODUCT-NAME-HERE[/b]" Language="1033" Version="1.0.0.0" Manufacturer="[b]PUT-COMPANY-NAME-HERE[/b]" UpgradeCode="e2a393b8-a226-4027-9e7e-c0878a63f901">
		<Package InstallerVersion="200" Compressed="yes" />

		<Media Id="1" Cabinet="WixProject1.cab" EmbedCab="yes" />

		<Directory Id="TARGETDIR" Name="SourceDir">
			<Directory Id="ProgramFilesFolder">
				<Directory Id="INSTALLLOCATION" Name="[b]PUT-APPLICATION-DIRECTORY-HERE[/b]">

					<Component Id="ProductComponent" Guid="873e824a-91a0-4d9c-9885-8d6e6ff0afe1">
						<!-- TODO: Insert your files, registry keys, and other resources here. -->
					</Component>

				</Directory>
			</Directory>
		</Directory>

		<Feature Id="ProductFeature" Title="[b]PUT-FEATURE-TITLE-HERE[/b]" Level="1">
			<ComponentRef Id="ProductComponent" />
		</Feature>
	</Product>
</Wix>


Что мы здесь имеем:

PUT-PRODUCT-NAME-HERE - название продукта (пакета)
PUT-COMPANY-NAME-HERE - производитель
PUT-APPLICATION-DIRECTORY-HERE - папка по умолчанию, в которую будет устанавливаться программа. <Directory Id="ProgramFilesFolder"> над этой строкой означает, что программа будет устанавливаться в Program Files
PUT-FEATURE-TITLE-HERE - то, что будет предлагаться пользователю при выборочной установке

<!-- TODO: Insert your files, registry keys, and other resources here. --> - здесь мы будем добавлять файлы, ключи реестра и т.д.
Добавим файл, а именно стандартный калькулятор из папки system32:

<File Id="calc.exe" Source="c:\windows\system32\calc.exe"></File>

Все вместе это будет выглядеть так:

<Component Id="ProductComponent" Guid="873e824a-91a0-4d9c-9885-8d6e6ff0afe1">
      <File Id="calc.exe" Source="c:\windows\system32\calc.exe"></File>
</Component>


Все, пакет готов к сборке, Build - Build Solution и наслаждаемся единственным окошком, которое просто устанавливает нашу программу без лишних вопросов.

Но это не то, чего бы хотелось.

Инсталлятор должен содержать как минимум лицензионное соглашение, возможность выбора папки для установки программы, шанс отказаться от установки путем нажатия кнопки отмена.

Будем все это добавлять.

Для начала начнем с добавления поддержки русского языка.

Для этого:
1. В ключе Product меняем Language="1033" на Language="1049" Codepage="1251"
2. В свойствах проекта, на закладке Linker в поле Cultures пишем ru-RU
3. В моей папке на ФТП забираем файл WixUI_ru-ru.wxl и добавляем к проекту.

Прикручиваем GUI
Правой клавишей на проекте, Add Reference, на закладке Browse выделяем WixUIExtension.dll и жмем Add, далее OK.
В ветке Ptoduct, где-нибудь в конце добавляем

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" ></Property>
<UIRef Id="WixUI_InstallDir"/>

В итоге получаем инсталятор с окном приветствия, лицензией, выбором директории. Почти все, осталось заменить текст лицензии на свой. Создаем лицензию в формате RTF, используя Wordpad. Office для этих целей не подойдет. Добавляем к проекту, открываем свойства проекта, Linker, в строке Define Wix variables пишем WixUILicenseRtf=license.rtf

Как еще что нарою сюда же добавлю.
Сейчас интересует выбор компонентов для установки создание ярлыков на программу.
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->< a href="http://forums.avtograd.ru/index.php?showtopic=119165" target="_blank">Quick Confign - программа для быстрого изменения настроек Windows</a><!--sizec--></span><!--/sizec-->
0


  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Другие ответы в этой теме

#21 Пользователь офлайн   DJ-Andrey-sXe

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 218
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Декабрь 2007 - 02:45

Просмотр сообщенияTerror (6.12.2007, 11:23):

Насчет того что возможности по кастомизации выше я не уверен.
Лично правил шаблоны диалогов в студии. А то, что цвета, шрифты меняются и произвольный растр можно натянуть, я уж и не говорю. Плагинов много, даже перечислять лень.
Ссылка: http://nsis.sourcefo...ategory:Plugins — поинтересуйся.
Куда уж выше для инсталлера?

Просмотр сообщенияTerror (6.12.2007, 11:23):

В MSI можно создавать полностью собственные диалоги используя XML.
XML для подобного рода данных тяжеловато, имхо. Меня, к примеру, очень радует возможность редактировать ресурсы визуально (хоть я и понимаю, что надо не терять навык фигачить диалоги руками в .rc).

Террор, извини, если что, но мне показалось, что это всё звучит скорее как оправдание выбора MSI. Слово "посолиднее" и вероятность оказаться вне закона на других инсталлерах,  мягко говоря, не убеждают. Не затруднит кратенько изложить, что такого уникального есть в MSI? (кроме юникода)

Просмотр сообщенияTerror (6.12.2007, 11:23):

Насчет лишних файлов - согласен, могли бы меня спросить хочу ли я резервную копию инсталлера на своем компе. МС для зачистки выпустила утилиту...
Пора бы уж. Третья версия на дворе. И всё-таки лучше бы сам инсталлер умел бы спрашивать и по умолчанию не класть.

В целом же, сколько бы я не видел MSI-ек, очень редкая ставится сопоставимо операциям по скорости. Тот же Inno или NSIS делает те же самые вещи быстрее. А то, насколько нерационально расходуется место на винте при установке 1 сервиспака к студии 2005, наверное мало кто сможет забыть, если хоть раз ставили.

P.s. А у NSIS движение в сторону Unicode всё-таки есть:
http://sourceforge.net/projects/nsisu/
0

#22 Пользователь офлайн   Terror

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 512
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Декабрь 2007 - 12:03

Не собираюсь я тут спорить, что лучше, что хуже. :)

Сам начал ковырять потому, что если придется пересесть на него по какой-либо причине, я буду к этому морально готов :)

В данный момент сам во всех установщиках использую NSIS, про плагины вкурсе, сам писал под него плагин. Все просто и понятно. Кастомизации тоже поддается.

Пост написал только для того, чтобы поделиться опытом, так как на старте очень сложно с MSI разобраться, MS как всегда в своем репертуаре, выпустили, а документация скудная. Больше информации можно почерпнуть на сторонних сайтах и форумах, нежели на их офф. сайте.
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->< a href="http://forums.avtograd.ru/index.php?showtopic=119165" target="_blank">Quick Confign - программа для быстрого изменения настроек Windows</a><!--sizec--></span><!--/sizec-->
0

#23 Пользователь офлайн   Exception

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 550
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Декабрь 2007 - 12:39

Террор, ты помоги с написанием скрипта к программе MakeMSI - дебильная консольная бесплатная тулзень для создания этих дебильных инсталляторов. Хотелось бы увидеть обычные типовые примерчики, а то там вообще ахтунг, а не скрипт установки - я ничего не понял и там что не удалишь, дальше не компилируется или компилируется, но с ошибками.
И это... Хотелось бы увидеть твои наработки для NSIS (мессаджбокс в конце удаления при деинсталле например - я у тебя спрашивал на старом форуме пример, но потом меня гадко забанили и не успел воспользоваться).
0

#24 Пользователь офлайн   Terror

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 512
  • Регистрация: 01 Ноябрь 07

Отправлено 14 Декабрь 2007 - 01:12

################################################################################
############
# NSIS Installation Script created by NSIS Quick Setup Script Generator v1.0 BETA 4
# This release is for testing purpose only, please use it wisely
################################################################################
############

!define APP_NAME "АИСТ Он-Лайн"
!define COMP_NAME "AIST"
!define WEB_SITE "http://www.aist.net.ru/AISTOnLine/"
!define VERSION "2.4.0.23"
!define COPYRIGHT "АИСТ © 2007"
!define DESCRIPTION "AIST On-Line"
!define LICENSE_TXT "license.txt"
!define INSTALLER_NAME "AISTOnLine-Setup.exe"
!define MAIN_APP_EXE "AISTOnLine.exe"
!define INSTALL_TYPE "SetShellVarContext current"
!define REG_ROOT "HKCU"
!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}"
!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\$ {APP_NAME}"
!define AUTORUN_PATH "Software\Microsoft\Windows\CurrentVersion\Run"

!define REG_START_MENU "Start Menu Folder"

var SM_Folder

######################################################################

SetCompressor "Zlib"
Name "${APP_NAME}"
Icon "AIST OnLine.ico"
Caption "${APP_NAME}"
OutFile "${INSTALLER_NAME}"
BrandingText "${APP_NAME} ${VERSION}"
XPStyle on
InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" ""
InstallDir "$PROGRAMFILES\${APP_NAME}"

######################################################################

!include "MUI.nsh"

!define MUI_ICON "AIST OnLine.ico"
!define MUI_UNICON "AIST OnLine.ico"
!define MUI_ABORTWARNING
!define MUI_UNABORTWARNING

!insertmacro MUI_PAGE_WELCOME

!ifdef MUI_WELCOMEFINISHPAGE_BITMAP
!undef MUI_WELCOMEFINISHPAGE_BITMAP
!endif
!define MUI_WELCOMEFINISHPAGE_BITMAP "banner.bmp"

!ifdef LICENSE_TXT
!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}"
!endif

!insertmacro MUI_PAGE_DIRECTORY

!ifdef REG_START_MENU
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${APP_NAME}"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}"
!insertmacro MUI_PAGE_STARTMENU Application $SM_Folder
!endif

!insertmacro MUI_PAGE_INSTFILES

######################################################################

!define MUI_PAGE_CUSTOMFUNCTION_PRE fin_pre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW fin_show
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE fin_leave
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme.txt"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_RUN "$INSTDIR\${MAIN_APP_EXE}"
!define MUI_FINISHPAGE_LINK "Страница программы АИСТ Он-Лайн"
!define MUI_FINISHPAGE_LINK_LOCATION "${WEB_SITE}"
!insertmacro MUI_PAGE_FINISH

######################################################################

!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH

######################################################################

!insertmacro MUI_LANGUAGE "Russian"

######################################################################

VIProductVersion "${VERSION}"
VIAddVersionKey "ProductName" "${APP_NAME}"
VIAddVersionKey "CompanyName" "${COMP_NAME}"
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
VIAddVersionKey "FileDescription" "${DESCRIPTION}"
VIAddVersionKey "FileVersion" "${VERSION}"

######################################################################

Section -MainProgram
CloseAOL::CloseAOL

${INSTALL_TYPE}
SetOverwrite ifnewer
SetOutPath "$INSTDIR"
File "..\release\AISTOnLine.exe"
File "..\release\Updater.exe"
File "data-tmpl.mdb"
File "gdiplus.dll"
File "aist on-line.chm"

File "..\release\module_AIST.dll"
File "..\release\module_Megafon.dll"
File "..\release\module_MTS.dll"
File "..\release\module_NCC.dll"
File "..\release\module_Smarts.dll"

File "license.txt"
File "readme.txt"
Sectionend

######################################################################

Section -Icons_Reg
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\uninstall.exe"

!ifdef REG_START_MENU
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$SM_Folder"
CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"
#CreateShortCut "$SMPROGRAMS\$SM_Folder\Удалить ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe"

!ifdef WEB_SITE
WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME} сайт.lnk" "$INSTDIR\${APP_NAME} website.url"
!endif
!insertmacro MUI_STARTMENU_WRITE_END
!endif

!ifndef REG_START_MENU
CreateDirectory "$SMPROGRAMS\${APP_NAME}"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"
#CreateShortCut "$SMPROGRAMS\${APP_NAME}\Удалить ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe"

!ifdef WEB_SITE
WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} сайт.lnk" "$INSTDIR\${APP_NAME} website.url"
!endif
!endif

WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}"

!ifdef WEB_SITE
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}"
!endif
Sectionend

######################################################################

Section Uninstall
${INSTALL_TYPE}
Delete "$INSTDIR\license.txt"
Delete "$INSTDIR\readme.txt"
Delete "$INSTDIR\${MAIN_APP_EXE}"
Delete "$INSTDIR\updater.exe"
Delete "$INSTDIR\${APP_NAME} website.url"

Delete "$INSTDIR\gdiplus.dll"
Delete "$INSTDIR\aist on-line.chm"

Delete "$INSTDIR\module_AIST.dll"
Delete "$INSTDIR\module_Megafon.dll"
Delete "$INSTDIR\module_MTS.dll"
Delete "$INSTDIR\module_NCC.dll"
Delete "$INSTDIR\module_Smarts.dll"

Delete "$INSTDIR\uninstall.exe"

MessageBox MB_YESNO|MB_ICONQUESTION "Вы хотите удалить программу полностью, включая установки программы?" IDYES true IDNO false
true:
Delete "$INSTDIR\data.mdb"
Delete "$INSTDIR\data-tmpl.mdb"
Delete "$INSTDIR\*.*"
RmDir "$INSTDIR"
Goto next
false:

next:

!ifdef REG_START_MENU
!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder
Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk"
Delete "$SMPROGRAMS\$SM_Folder\Удалить ${APP_NAME}.lnk"
Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME} сайт.lnk"
Delete "$DESKTOP\${APP_NAME}.lnk"

RmDir "$SMPROGRAMS\$SM_Folder"
!endif

!ifndef REG_START_MENU
Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk"
Delete "$SMPROGRAMS\${APP_NAME}\Удалить ${APP_NAME}.lnk"
Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME} сайт.lnk"
Delete "$DESKTOP\${APP_NAME}.lnk"

RmDir "$SMPROGRAMS\${APP_NAME}"
!endif

Delete "$QUICKLAUNCH\${APP_NAME}.lnk"

DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}"
DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
DeleteRegValue ${REG_ROOT} "${AUTORUN_PATH}" "AISTOnLine"
Sectionend

######################################################################

Function fin_show
ReadINIStr $0 "$PLUGINSDIR\iospecial.ini" "Field 6" "HWND"
SetCtlColors $0 0x000000 0xFFFFFF
ReadINIStr $1 "$PLUGINSDIR\iospecial.ini" "Field 7" "HWND"
SetCtlColors $1 0x000000 0xFFFFFF
Functionend

Function fin_pre
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Settings" "NumFields" "6"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Type" "CheckBox"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Text" "&Создать ярлык быстрого запуска"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Left" "120"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Right" "315"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Top" "160"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "Bottom" "170"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 6" "State" "1"

WriteINIStr "$PLUGINSDIR\iospecial.ini" "Settings" "NumFields" "7"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Type" "CheckBox"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Text" "&Создать ярлык на рабочем столе"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Left" "120"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Right" "315"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Top" "140"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "Bottom" "150"
WriteINIStr "$PLUGINSDIR\iospecial.ini" "Field 7" "State" "1"
Functionend

Function fin_leave
ReadINIStr $0 "$PLUGINSDIR\iospecial.ini" "Field 6" "State"
StrCmp $0 "0" skip_quick_launch
SetOutPath "$INSTDIR"
CreateShortCut "$QUICKLAUNCH\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"

skip_quick_launch:

ReadINIStr $1 "$PLUGINSDIR\iospecial.ini" "Field 7" "State"
StrCmp $1 "0" skip_desktop
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"

skip_desktop:

Functionend
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->< a href="http://forums.avtograd.ru/index.php?showtopic=119165" target="_blank">Quick Confign - программа для быстрого изменения настроек Windows</a><!--sizec--></span><!--/sizec-->
0

#25 Пользователь офлайн   up

  • Старожил
  • PipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 193
  • Регистрация: 01 Ноябрь 07

Отправлено 14 Декабрь 2007 - 21:43

Цитата

NSIS Quick Setup Script Generator v1.0 BETA 4
а это где взять?
0

#26 Пользователь офлайн   Terror

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 512
  • Регистрация: 01 Ноябрь 07

Отправлено 15 Декабрь 2007 - 02:26

Вот для кого гугл писали? :)

http://nsis.sourcefo...cript_Generator

Просмотр сообщенияup (14.12.2007, 21:43):

а это где взять?

<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->< a href="http://forums.avtograd.ru/index.php?showtopic=119165" target="_blank">Quick Confign - программа для быстрого изменения настроек Windows</a><!--sizec--></span><!--/sizec-->
0

#27 Пользователь офлайн   DJ-Andrey-sXe

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 218
  • Регистрация: 01 Ноябрь 07

Отправлено 15 Май 2008 - 21:02

Про инсталлер АИСТ Он-лайн.
Предлагаю вот это:

Просмотр сообщенияTerror (14.12.2007, 2:12):

File "gdiplus.dll"

делать так:

IfFileExists  "$SYSDIR\gdiplus.dll" +2
File "gdiplus.dll"

Потому что:
1) зачем класть либу, если она уже есть?
2) у меня, например, гдиплюс новее стоит, удалене локальной проблем не создаёт
(про перестраховаться я понимаю, но можно же потестить на десятке машин и принять решение)
3) если нет никакой, вот тогда только ставить

P.s. В русском языке слово онлайн пишется слитно :)
0

#28 Пользователь офлайн   Terror

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 512
  • Регистрация: 01 Ноябрь 07

Отправлено 16 Май 2008 - 23:12

Хороший совет, спасибо, воспользуюсь.

ЗЫЖ

Онлайн смотрится скучно :)
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->< a href="http://forums.avtograd.ru/index.php?showtopic=119165" target="_blank">Quick Confign - программа для быстрого изменения настроек Windows</a><!--sizec--></span><!--/sizec-->
0

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей