From 447915ce6a6f07a84affc22611287fe00b057534 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Wed, 16 Jul 2008 00:58:28 +0000 Subject: [PATCH] windows-nsis-vs2008-runtime-20080715 LICENSE MIT Add support for VS2008 Use MSI runtime installation package instead of EXE package Cleanup runtime from the correct directory --- src/WINNT/install/NSIS/NTMakefile | 46 ++++--- src/WINNT/install/NSIS/OpenAFS.nsi | 257 +++++++++++++++++++++-------------- src/WINNT/install/NSIS/vcruntime.wxs | 92 ++++++++----- 3 files changed, 240 insertions(+), 155 deletions(-) diff --git a/src/WINNT/install/NSIS/NTMakefile b/src/WINNT/install/NSIS/NTMakefile index e6177eb..7740832 100644 --- a/src/WINNT/install/NSIS/NTMakefile +++ b/src/WINNT/install/NSIS/NTMakefile @@ -71,6 +71,23 @@ IDNMREDIST=$(MSIDNNLS)\REDIST\idndl.amd64.exe ! error Unknown CPU value !ENDIF +!if ("$(AFSVER_CL)"=="1400") || ("$(AFSVER_CL)"=="1500") +MSVCMSI=$(EXEDIR)\vcruntime-$(AFSVER_CL)$(AFSDEV_BUILDTYPE).msi + +$(MSVCMSI): $(OUT)\vcruntime.wixobj + light -out $@ $** + $(CODESIGN_USERLAND) + +$(OUT)\vcruntime.wixobj: vcruntime.wxs + candle -out $@ $** -dPlatform=$(ARCH) -dConfig=Debug -dVCVer=$(AFSVER_CL) + +!else +MSVCMSI= +!endif + +runtime: $(MSVCMSI) + + prebuild: !IF ("$(AFSDEV_BUILDTYPE)" == "FREE") !IF ("$(AFSVER_CL)"=="1400") @@ -89,7 +106,9 @@ prebuild: !ERROR Unknown Compiler Version !ENDIF !ELSE # NOT FREE - CHECKED -!IF ("$(AFSVER_CL)"=="1400") +!IF ("$(AFSVER_CL)"=="1500") +# Do nothing +!ELSE IF ("$(AFSVER_CL)"=="1400") # Do nothing. !ELSE IF ("$(AFSVER_CL)"=="1310") $(COPY) %SystemRoot%\System32\Msvcr71d.dll $(EXEDIR) @@ -122,9 +141,12 @@ prebuild: $(DESTDIR)\bin\util_cr.exe _echo "!define " >>$(OUT)\nsi-includes.nsi "$(NSISDIR)\makensis.exe" /VERSION >>$(OUT)\nsi-includes.nsi echo. >>$(OUT)\nsi-includes.nsi -!if ("$(AFSVER_CL)" == "1400") +!if ("$(AFSVER_CL)" == "1500") + echo !define CL_1500 1 >> $(OUT)\nsi-includes.nsi + echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi +!else if ("$(AFSVER_CL)" == "1400") echo !define CL_1400 1 >> $(OUT)\nsi-includes.nsi - echo !define VCREDISTNAME vcredist_$(ARCH).exe >> $(OUT)\nsi-includes.nsi + echo !define MSVCMSI "$(MSVCMSI)" >> $(OUT)\nsi-includes.nsi !else if ("$(AFSVER_CL)" == "1310") echo !define CL_1310 1 >> $(OUT)\nsi-includes.nsi !else if ("$(AFSVER_CL)" == "1300") @@ -137,29 +159,13 @@ prebuild: echo !define DEBUG 1 >>$(OUT)\nsi-includes.nsi !endif -!if ("$(AFSVER_CL)"=="1400") && ("$(AFSDEV_BUILDTYPE)"!="FREE") -MSVCMSI=$(EXEDIR)\vcruntime.msi - -$(MSVCMSI): $(OUT)\vcruntime.wixobj - light -out $@ $** - $(CODESIGN_USERLAND) - -$(OUT)\vcruntime.wixobj: vcruntime.wxs - candle -out $@ $** -dPlatform=$(ARCH) -dConfig=Debug - -!else -MSVCMSI= -!endif - -runtime: $(MSVCMSI) - !if ("$(AFSDEV_BUILDTYPE)" == "CHECKED") NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows-DEBUG.exe !else NSISEXE=$(DESTDIR)\WinInstall\OpenAFSforWindows.exe !endif -$(NSISEXE): prebuild +$(NSISEXE): prebuild $(MSVCMSI) "$(NSISDIR)\makensis.exe" /DINCLUDEDIR=$(OUT) OpenAFS.nsi $(CODESIGN_USERLAND) diff --git a/src/WINNT/install/NSIS/OpenAFS.nsi b/src/WINNT/install/NSIS/OpenAFS.nsi index 702d5ca..5dc2057 100644 --- a/src/WINNT/install/NSIS/OpenAFS.nsi +++ b/src/WINNT/install/NSIS/OpenAFS.nsi @@ -1239,6 +1239,9 @@ DoControl: DoCommon: SetOutPath "$INSTDIR\Common" +!IFDEF CL_1500 + ; Do nothing +!ELSE !IFDEF CL_1400 ; Do nothing !ELSE @@ -1258,6 +1261,7 @@ DoCommon: !ENDIF !ENDIF !ENDIF +!ENDIF ; Common Areas SetOutPath "$INSTDIR\Common" @@ -1721,72 +1725,89 @@ StartRemove: Delete /REBOOTOK "$INSTDIR\Common\afskasadmin.pdb" Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.pdb" !IFDEF DEBUG +!IFDEF CL_1500 + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" +!ELSE !IFDEF CL_1400 - SetOutPath "$INSTDIR\bin" - File "${AFS_WININSTALL_DIR}\vcruntime.msi" - nsExec::Exec 'msiexec /x "$INSTDIR\bin\vcruntime.msi" /passive' - Delete "$INSTDIR\bin\vcruntime.msi" + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\mfc71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc71d.pdb" !ELSE !IFDEF CL_1300 - Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\mfc70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc70d.pdb" !ELSE - Delete /REBOOTOK "$INSTDIR\bin\mfc42d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc42d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc42d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc42d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb" +!ENDIF !ENDIF !ENDIF !ENDIF !ELSE +!IFDEF CL_1500 + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" +!ELSE !IFDEF CL_1400 - ; Do nothing + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\bin\mfc71.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr71.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71.dll" - Delete /REBOOTOK "$INSTDIR\bin\MFC71CHS.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71CHT.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71DEU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ENU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ESP.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71FRA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ITA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71JPN.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71KOR.DLL" + Delete /REBOOTOK "$INSTDIR\Common\mfc71.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71.dll" + Delete /REBOOTOK "$INSTDIR\Common\MFC71CHS.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71CHT.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71DEU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ENU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ESP.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71FRA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ITA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71JPN.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71KOR.DLL" !ELSE !IFDEF CL_1300 - Delete /REBOOTOK "$INSTDIR\bin\mfc70.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr70.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70.dll" - Delete /REBOOTOK "$INSTDIR\bin\MFC70CHS.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70CHT.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70DEU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ENU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ESP.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70FRA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ITA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70JPN.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70KOR.DLL" + Delete /REBOOTOK "$INSTDIR\Common\mfc70.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70.dll" + Delete /REBOOTOK "$INSTDIR\Common\MFC70CHS.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70CHT.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70DEU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ENU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ESP.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70FRA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ITA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70JPN.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\bin\mfc42.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcrt.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc42.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll" +!ENDIF !ENDIF !ENDIF !ENDIF @@ -1897,69 +1918,89 @@ StartRemove: RMDir "$INSTDIR\Client" !IFDEF DEBUG +!IFDEF CL_1500 + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" +!ELSE !IFDEF CL_1400 - ; Do nothing + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\mfc71d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc71d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc71d.pdb" !ELSE !IFDEF CL_1300 - Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\mfc70d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc70d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc70d.pdb" !ELSE - Delete /REBOOTOK "$INSTDIR\bin\mfc42d.dll" - Delete /REBOOTOK "$INSTDIR\bin\mfc42d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.pdb" - Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.pdb" + Delete /REBOOTOK "$INSTDIR\Common\mfc42d.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc42d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60d.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60d.pdb" + Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb" +!ENDIF !ENDIF !ENDIF !ENDIF !ELSE +!IFDEF CL_1500 + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" +!ELSE !IFDEF CL_1400 - ; Do nothing + SetOutPath "$INSTDIR\Common" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /x "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 - Delete /REBOOTOK "$INSTDIR\bin\mfc71.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr71.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp71.dll" - Delete /REBOOTOK "$INSTDIR\bin\MFC71CHS.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71CHT.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71DEU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ENU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ESP.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71FRA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71ITA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71JPN.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC71KOR.DLL" + Delete /REBOOTOK "$INSTDIR\Common\mfc71.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp71.dll" + Delete /REBOOTOK "$INSTDIR\Common\MFC71CHS.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71CHT.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71DEU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ENU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ESP.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71FRA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71ITA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71JPN.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC71KOR.DLL" !ELSE !IFDEF CL_1300 - Delete /REBOOTOK "$INSTDIR\bin\mfc70.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcr70.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp70.dll" - Delete /REBOOTOK "$INSTDIR\bin\MFC70CHS.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70CHT.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70DEU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ENU.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ESP.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70FRA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70ITA.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70JPN.DLL" - Delete /REBOOTOK "$INSTDIR\bin\MFC70KOR.DLL" + Delete /REBOOTOK "$INSTDIR\Common\mfc70.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcr70.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp70.dll" + Delete /REBOOTOK "$INSTDIR\Common\MFC70CHS.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70CHT.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70DEU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ENU.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ESP.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70FRA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70ITA.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70JPN.DLL" + Delete /REBOOTOK "$INSTDIR\Common\MFC70KOR.DLL" !ELSE - Delete /REBOOTOK "$INSTDIR\bin\mfc42.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcp60.dll" - Delete /REBOOTOK "$INSTDIR\bin\msvcrt.dll" + Delete /REBOOTOK "$INSTDIR\Common\mfc42.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcp60.dll" + Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll" +!ENDIF !ENDIF !ENDIF !ENDIF @@ -2751,9 +2792,14 @@ Function AFSLangFiles SetOutPath "$INSTDIR\Common" !IFDEF DEBUG +!IFDEF CL_1500 + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /i "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" +!ELSE !IFDEF CL_1400 - File "${AFS_WININSTALL_DIR}\vcruntime.msi" - nsExec::Exec 'msiexec /i "$INSTDIR\Common\vcruntime.msi" /passive' + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /i "$INSTDIR\Common\vcruntime.msi" /passive /norestart' Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 @@ -2790,11 +2836,17 @@ Function AFSLangFiles !ENDIF !ENDIF !ENDIF +!ENDIF +!ELSE +!IFDEF CL_1500 + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /i "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1400 - File "${AFS_WININSTALL_DIR}\${VCREDISTNAME}" - nsExec::Exec '"$INSTDIR\Common\${VCREDISTNAME}" /Q' - Delete "$INSTDIR\Common\${VCREDISTNAME}" + File /oname=vcruntime.msi "${MSVCMSI}" + nsExec::Exec 'msiexec /i "$INSTDIR\Common\vcruntime.msi" /passive /norestart' + Delete "$INSTDIR\Common\vcruntime.msi" !ELSE !IFDEF CL_1310 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc71.dll" "$INSTDIR\Common\mfc71.dll" "$INSTDIR" @@ -2831,6 +2883,7 @@ Function AFSLangFiles !ENDIF !ENDIF !ENDIF +!ENDIF StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman diff --git a/src/WINNT/install/NSIS/vcruntime.wxs b/src/WINNT/install/NSIS/vcruntime.wxs index 1d0f000..eb29101 100644 --- a/src/WINNT/install/NSIS/vcruntime.wxs +++ b/src/WINNT/install/NSIS/vcruntime.wxs @@ -1,16 +1,42 @@ + + + + + + + + + + + + + + + + + + @@ -19,7 +45,7 @@ AdminImage="no" Comments="Copyright (C) Microsoft Corporation, All rights reserved." Compressed="yes" - Description="Visual C++ 8.0 $(var.Config) ($(var.Platform)) WinSXS MSM" + Description="Visual C++ $(var.VString) $(var.Config) ($(var.Platform)) WinSXS MSM" InstallerVersion="300" Keywords="Installer,VC,$(var.Config),Runtime" Manufacturer="Microsoft Corporation" @@ -37,48 +63,48 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + -- 1.9.4