Я использовал NSIS
для приложения win form для создания установщика Windows. Недавно один из моих тестеров сообщил об ошибке, которая NSIS прекратила создавать несколько папок в Program Files (x86)
.Невозможно установить несколько приложений из установщика NSIS
Мы работаем в нескольких средах (Staging,Prep.,Production
), ранее я смог создать установщик для каждого в среде, но в последнее время я считаю, что файлы в Program Files (x86)
перезаписываются.
Вот сценарии:
создать инсталлятор для ступенчатого environment.Everything идет также файлы будут установлены в Program Files (x86)
, значок на рабочем столе создается, приложение добавляется в автозагрузку меню Я могу работать и все выглядит хорошо
Теперь я пытаюсь создать установщик для среды Pre-Production. После компиляции сценария NSIS
и тестирования установщика папка-получатель не получает переопределения, она использует тот же путь для стадии. с установщиком это то, что происходит , Новая папка не создана на Program Files (x86)
. У меня только есть папка. новый значок на рабочем столе создается, но когда я бегу применение промежуточной подготовки производства запущена Удаление приложения Постановка будет удалить и окружающую среду
Я не знаю, что происходит, я прилагаю NSIS
script.Please есть взгляните на него и сообщите мне, что я делаю неправильно.
Спасибо С уважением
Ниже NSIS скрипт:
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "iContracts staging - Bulk Contract Uploader v 7.9"
!define DIR_NAME "icontracts-UCO-BulkLoader-staging"
!define PRODUCT_VERSION ""
!define PRODUCT_PUBLISHER "iContracts"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\UCO\IcnBulkUpload.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\UCO\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
; MUI 1.67 compatible ------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON ".\Images\mine.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
; Welcome page
;!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_RUN "$INSTDIR\IcnBulkUpload.exe"
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "English"
; MUI end ------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}.exe"
;InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
InstallDir "$PROGRAMFILES\${DIR_NAME}"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show
Function GetDotNet
IfFileExists "$WINDIR\Microsoft.NET\Framework\v2.0.50727\installUtil.exe" NextStep
MessageBox MB_OK|MB_ICONEXCLAMATION "You must have the Microsoft .NET Framework 2.0 Installed to use this application. $\n$\nClick 'Open' in the following file dialog to download and run the Microsoft .NET Framework Installer..."
ExecShell Open "http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=0856eacb-4362-4b0d-8edd-aab15c5e04f5&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f7%2f567758a3-759e-473e-bf8f-52154438565a%2fdotnetfx.exe" SW_SHOWNORMAL
Quit
NextStep:
FunctionEnd
Section "Check Dot Net" SEC02
Call GetDotNet
SectionEnd
Section "MainSection" SEC01
SetOutPath "$INSTDIR"
SetOverwrite on
File ".\bin\Debug\IcnBulkUpload.exe"
File ".\bin\Debug\IcnBulkUpload.exe.config"
File ".\mine.ICO"
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\IcnBulkUpload.exe" "" "$INSTDIR\mine.ICO"
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\IcnBulkUpload.exe" "" "$INSTDIR\mine.ICO"
; CreateDirectory ""
CreateShortCut "$STARTMENU.lnk" "$INSTDIR\IcnBulkUpload.exe"
SectionEnd
Section -AdditionalIcons
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\IcnBulkUpload.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\IcnBulkUpload.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
FunctionEnd
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
Abort
FunctionEnd
Section Uninstall
Delete "$INSTDIR\uninst.exe"
Delete "$INSTDIR\IcnBulkUpload.exe"
Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
Delete "$STARTMENU.lnk"
Delete "$DESKTOP\iContracts.lnk"
Delete "$SMPROGRAMS\${PRODUCT_NAME}\iContracts.lnk"
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
RMDir /r "$INSTDIR"
RMDir ""
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd
Stack Overflow предлагает минимальные, полные и проверенные примеры по уважительной причине - [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). Никто не хочет проходить чрезмерно большой пример, чтобы определить, что может быть проблемой! – idleberg