Я создал новый установщик, используя NSIS.При установке этой новой версии установщика, если присутствует предыдущая версия установщика, я удаляю этот установщик и устанавливаю новый установщик.
Но перед удалением предыдущего установщика я хотел сохранить (экспортировать) реестрзаписи предыдущего установщика, а затем импортируйте (восстановите) значения файла .reg с помощью нового установщика.
Мой путь к реестру предыдущего установщика: \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ EMR \ 3.01.00
Мой текущий путь реестра установщика: \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ EMR \ 4.01.00
Я экспортирую (сохраняю значения реестра), как показано ниже, используя NSIS:
${registry::SaveKey} "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\EMR" "C:\Code\Changes\regfile.reg" "/G=1 /D=2" $R0
${registry::Unload}
MessageBox MB_OK "PPC-registry::SaveKey$\n$\n\
Errorlevel: [$R0]"
**Importing the registry values like as shown below:**
IfFileExists "C: \ Code \ Changes \ regfile.reg" file_found file_not_found
file_found:
${registry::RestoreKey} "C:\Code\Changes\regfile.reg" $R0
MessageBox MB_OK "PPC-registry::RestoreKey$\n$\n\
Errorlevel: [$R0]"
goto end_of_test file_not_found: MessageBox Файл MB_ICONEXCLAMATION | MB_OK "не существует "end_of_test:
Но с приведенным выше фрагментом кода при восстановлении файла .reg в регистреСтрого это показывает EMR \ 3.01.00 И EMR \ 4.01.00.А также после импорта последовательность значений ключа реестра меняется.
Пожалуйста, помогите мне, как восстановить старые значения реестра, но показать только EMR \ 4.01.00.
Способ 2:
А также я использую сценарий VB для экспорта и импорта значений реестра, как показано ниже:
Экспорт реестра:
outfile = userDir & "\ tempkeyPCPE.reg" key = "HKEY_LOCAL_MACHINE \ SOFTWARE \ APC" Return = oShell.Run ("regedit / s / e" "" & outfile & "" "" "" "& key &"" "", 0, True) userDir = "" end function
]]>
Импорт реестра:
<Property Id="IMPORT_REG">
<![CDATA[
function importReg
Dim regfile, userDir, oShell
Set oShell = CreateObject("WScript.Shell")
userDir = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
regfile = userDir & "\tempkeyPCPE.reg"
Return = oShell.Run("regedit /s """ & regfile & """",0,True)
userDir = ""
end function
]]>
</Property>
Тогдас помощью установщика WIX я вызываю EXPORT_REG и IMPORT_REG, как показано ниже:
<CustomAction Id="ExportRegistry"
VBScriptCall="exportReg"
Property="EXPORT_REG" Return="ignore"/>
<CustomAction Id="ImportRegistry"
VBScriptCall="importReg"
Property="IMPORT_REG"
Execute="deferred"
Impersonate="no" Return="ignore"/>
Пожалуйста, помогите мне, как экспортировать и импортировать вызовы сценариев VB с использованием NSIS?