vb6 - NSIS RegFree, Component ... not correctly registered ... Win10(x64) or Win7(x64) -
i have had nsis script files working while 32 bit ... on fresh (not used development) win7/win10 (64), there problems .ocx files.
the programs , support files installed in c:\program files (x86)... or d:\program files (x86)... includes: program.exe, uninstall.exe, .dll, .tlb, .olb, .ocx , .manifest files. installations 'regfree'. data files located in: c:\users\public... or d:\users\public...
i error message when start program, newly installed on win7(x64) or win10(x64) pc:
component 'richtx32.ocx' or 1 of dependencies not correctly registered: file missing or invalid
depending on program, has complained about: mscomct2.ocx, threed32.ocx or richtx32.ocx
i ran dependency walker in deployment environment e.g.: win10(64) richtx32.ocx. created listing in left-hand panel:
shell32.dll oledlg.dll kernel32.dll user32.dll 0le32.dll advapi32.dll oleaut32.dll comdlg32.dll gd132.dll
kernel32.dll 1 of first line of dependents red flagged items in right hand panel.
i updated nsis script include kernel32.dll other support files copied c:\program files (x86)...
i still error message: component 'richtx32.ocx' or 1 of dependencies not correctly registered: file missing or invalid
any ideas how succeed in regfree installation. please?
that way started out, without kernel32.dll . error message or without it. – user243281
i wish had answer how prepare installations work on win7(x64) , win10(x64). put things in correct folders, not run.
i created application vb6 on winxp(32) virtual pc. compiled nsis script in same development environment. had believed work done, test installs on pcs 'contaminated' development activities.
-------------- querymgr manifest:
? inserted 4 blanks in front of each line if manifest (xml) not accept it?
i cannot accept querymgr manifest. xml file, not close enough html...?
all of manifest files installed in install directory e.g.: c:\program files (x86)\clark_anderson\
i tried pasting manifest files in main posting window, code...? (xml files similar html)
the .ocx files part of vb6 development environment. related form controls have used in applications. 1 of them, threed32.ocx, ~3rd party ?attachment? vb6.
--------------------- nsis script:
!include mui2.nsh ;create installdirectoryrequirements page vvvvvvv !include "nsdialogs.nsh" !include "winmessages.nsh" !include "logiclib.nsh" !include "x64.nsh" ;14jul2013 ;create installdirectoryrequirements page ^^^^^^^ ;!define mui_componentspage_smalldesc ;no value ;?!define mui_ui "myui.exe" ;value ;!define mui_instfilespage_colors "ffffff 000000" ;two colors ; ------------------------------- ; start !define mui_product "querymgr" !define mui_file "querymgr" !define mui_version "2.08" !define mui_brandingtext "querymgr ver. 2.08" crccheck on !include "${nsisdir}\contrib\modern ui\system.nsh" ;-------------------------------- ;general name "querymgr ${mui_version}" outfile "iquerymgr.exe" ;default installation folder ; installdir "$localappdata\clark_anderson\${mui_product}" ; installdir "c:\users\public\clark_anderson\${mui_file}" !include winver.nsh ;11aug2013 var /global datadir ;31jul2013 var datadir ;11aug2013 showinstdetails "nevershow" showuninstdetails "nevershow" ;setcominstalldirectoryrequirementsssor "bzip2" ;? !define mui_icon "icon.ico" ;? !define mui_unicon "icon.ico" !define mui_specialbitmap "bitmap.bmp" ;-------------------------------- ;folder selection page ; installdir "c:\users\public\clark_anderson\${mui_product}" ;11aug2013 xxxxx vvvv ;function dir_pge_txt_dest ; !define $mui_directorypage_text_destination "setup install ${mui_product} ${mui_version} in following folder. install in different folder, click browse , select folder. click install start installation. imperative install c:\users\public\... folder structure! " ;functionend ;11aug2013 xxxxx ^^^^ ;07aug2013 vvvvvvvvvvvv function .onverifyinstdir ${if} ${runningx64} ${else} strcpy $datadir $instdir ${endif} functionend ;07aug2013 ^^^^^^^^^^^^^ ;-------------------------------- ;modern ui configuration !define mui_welcomepage !define mui_licensepage !define mui_directorypage !define mui_abortwarning !define mui_uninstaller !define mui_unconfirmpage !define mui_finishpage function .oninit ${if} ${atleastwinvista} ${if} ${runningx64} strcpy $instdir "$programfiles32\clark_anderson\${mui_file}" expandenvstrings $datadir "%public%\clark_anderson\${mui_file}" ${else} expandenvstrings $instdir "%public%\clark_anderson\${mui_file}" expandenvstrings $datadir "%public%\clark_anderson\${mui_file}" ${endif} ${else} strcpy $instdir "$programfiles\clark_anderson\${mui_file}" strcpy $datadir "$programfiles\clark_anderson\${mui_file}" ${endif} functionend ;-------------------------------- ;pages !insertmacro mui_page_welcome ; !insertmacro mui_page_license "${nsisdir}\docs\modern ui\license.txt" !insertmacro mui_page_components page custom installdirectoryrequirements ;"important information install location" ;create multi-line edit (text) control !insertmacro mui_page_directory !insertmacro mui_page_instfiles !insertmacro mui_page_finish !insertmacro mui_unpage_welcome !insertmacro mui_unpage_confirm !insertmacro mui_unpage_instfiles !insertmacro mui_unpage_finish ;create installdirectoryrequirements page vvvvvvv !define installdirectoryrequirements_title "requirements ${mui_product} install directory" !define installdirectoryrequirements_subtitle "this permit access ${mui_product} pc users $\r$\nand prevent interference , other programs on pc. " var dialog var label function installdirectoryrequirements !insertmacro mui_header_text "${installdirectoryrequirements_title}" "${installdirectoryrequirements_subtitle}" nsdialogs::create 1018 pop $dialog ${if} $dialog == error abort ${endif} pop $instdir ${nsd_createlabel} 0 0 100% 20% "setup install ${mui_product} ${mui_version} in following folder: $\r$\n $instdir $\r$\n" ;to install in different folder, on next page click browse , select folder, then, click install start installation. " ${nsd_createlabel} 0 15% 100% 30% "setup install ${mui_product} sample data in following folder , subfolders: $\r$\n $datadir $\r$\n" ;to install in different folder, on next page click browse , select folder, then, click install start installation. " ;31jul2013 pop $label ; ${nsd_addstyle} $label ${ss_center} ${nsd_createlabel} 0 30% 100% 40% "the ...\clark_anderson subfolder identifies source of program.$\r$\nthe ...\${mui_product} subfolder unique program.$\r$\n$\r$\neverything needed ${mui_product} stored in ..\${mui_product} subfolder , subfolders.$\r$\n$\r$\nthis 'everything needed' achieved including manifest files (reg-free com),$\r$\n thus, refraining use of pc registry." pop $label ; ${nsd_addstyle} $label ${ss_center} ${if} ${atleastwinvista} ${if} ${runningx64} ; 03aug2013 vvvv ${nsd_createlabel} 0 80% 100% 40% "it imperative install c:\program files (x86)\... folder structure! " pop $label ${else} ; 03aug2013 ^^^^ ${nsd_createlabel} 0 80% 100% 40% "it imperative install c:\users\public\... folder structure! " pop $label ${endif} ; 03aug2013 ; ${nsd_addstyle} $label ${ss_center} ${endif} ${if} ${runningx64} ; 14jul2013 vvvv ${nsd_createlabel} 0 90% 100% 40% " 64 bit windows, tested." pop $label ${else} ${nsd_createlabel} 0 90% 100% 40% " 32 bit windows, tested." pop $label ${endif} ; 14jul2013 ^^^^ nsdialogs::show functionend ;section "" ;sectionend ;create installdirectoryrequirements page ^^^^^^^ ;-------------------------------- ;language !insertmacro mui_language "english" ;-------------------------------- ;modern ui system ;? !insertmacro mui_system ;-------------------------------- ;data ; licensedata "lees_mij.txt" ;-------------------------------- ;installer sections insttype "compact" insttype "typical" ;add files section "program files" sectionin 1 2 setoutpath "$instdir" file "c:\devlpmnt\lang\vb6\querymgr\querymgr.exe" sectionend section "system files - winsysdir" sectionin 1 2 setoutpath "$instdir" file "c:\windows\system32\msvbvm60.dll" file "c:\program files\microsoft visual studio\vb98\vb6.olb" file "c:\windows\system32\stdole2.tlb" file "c:\program files\microsoft office\office\msacc9.olb" file "c:\program files\common files\microsoft shared\dao\dao360.dll" file "c:\program files\microsoft visual studio\vb98\vb6ext.olb" file "c:\windows\system32\msstdfmt.dll" file "c:\windows\system32\comdlg32.ocx" file "c:\windows\system32\richtx32.ocx" ;18aug2017 file "c:\windows\system32\kernel32.dll" ; 12aug2017 file "c:\devlpmnt\lang\vb6\querymgr\manifest\querymgr.exe.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\msvbvm60.dll.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\vb6.olb.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\stdole2.tlb.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\msacc9.olb.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\dao360.dll.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\vb6ext.olb.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\msstdfmt.dll.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\comdlg32.ocx.manifest" file "c:\devlpmnt\lang\vb6\_dllmanifest\richtx32.ocx.manifest" ; 12aug2017 file "c:\devlpmnt\lang\vb6\_dllmanifest\kernel32.dll.manifest" sectionend section "sample data files (optional: recommended starting)" sectionin 2 setoutpath "$datadir\databases" file "c:\devlpmnt\lang\vb6\querymgr\databases\asqlsela2k.mdb" file "c:\devlpmnt\lang\vb6\querymgr\databases\asqljoi22k.mdb" file "c:\devlpmnt\lang\vb6\querymgr\databases\asqljoi3.mdb" file "c:\devlpmnt\lang\vb6\querymgr\databases\asqlfcn42k.mdb" file "c:\devlpmnt\lang\vb6\querymgr\databases\asqluni62k.mdb" file "c:\devlpmnt\lang\vb6\querymgr\databases\lookup.mdb" sectionend ;installation info section "install" sectionin 1 2 ;create desktop shortcut ; createshortcut "$desktop\${mui_product}.lnk" "$instdir\${mui_file}.exe" "" createshortcut "$desktop\${mui_file}.lnk" "$instdir\${mui_file}.exe" "" ;create start-menu items createdirectory "$smprograms\${mui_product}" createshortcut "$smprograms\${mui_product}\uninstall.lnk" "$instdir\uninstall.exe" "" "$instdir\uninstall.exe" 0 createshortcut "$smprograms\${mui_product}\${mui_product}.lnk" "$instdir\${mui_file}.exe" "" "$instdir\${mui_file}.exe" 0 ;write uninstall information registry writeregstr hklm "software\microsoft\windows\currentversion\uninstall\${mui_product}" "displayname" "${mui_product} {remove only}" writeregstr hklm "software\microsoft\windows\currentversion\uninstall\${mui_product}" "uninstallstring" "$instdir\uninstall.exe" writeuninstaller "$instdir\uninstall.exe" sectionend ;-------------------------------- ;uninstaller section section "uninstall" ;12aug2013 variable $datadir values not saved section vvvv ${if} ${runningx64} expandenvstrings $datadir "%public%\clark_anderson\${mui_file}" ${else} strcpy $datadir $instdir ${endif} ;12aug2013 variable $datadir values not saved section ^^^^ ;delete files delete "$instdir\*.*" ;12aug2013 delete "$datadir\reports\templates\*.*" ;12aug2013 delete "$datadir\reports\*.*" ;12aug2013 delete "$datadir\databases\*.*" ;12aug2013 delete "$datadir\*.*" ;12aug2013 ;remove installation directory ;13aug2013 +vvvv rmdir $instdir rmdir $datadir\reports\templates rmdir $datadir\reports rmdir $datadir\databases rmdir $datadir ;13aug2013 +^^^^ ;delete start menu shortcuts delete "$desktop\${mui_product}.lnk" delete "$smprograms\${mui_product}\*.*" rmdir "$smprograms\${mui_product}" ;delete uninstaller , unistall registry entries deleteregkey hkey_local_machine "software\${mui_product}" deleteregkey hkey_local_machine "software\microsoft\windows\currentversion\uninstall\${mui_product}" sectionend ;-------------------------------- ;messagebox section ;function calls messagebox when installation finished correctly function .oninstsuccess messagebox mb_ok "you have installed ${mui_brandingtext}. use desktop icon start program." functionend function un.onuninstsuccess messagebox mb_ok "you have uninstalled ${mui_brandingtext}." functionend ;!verbose 0 ;!error "" ;eof
(i hope nsis script came through clean code, after editing insert 4 spaces)
===============================
richtx32.ocx seems need kernel32.dll
c:>dir /s kernel32.dll
volume in drive c os
volume serial number 48c7-50d7
directory of c:\windows\system32
05/30/2017 01:39 pm 708,712 kernel32.dll
1 file(s) 708,712 bytes
directory of c:\windows\syswow64
05/30/2017 01:39 pm 599,576 kernel32.dll
1 file(s) 599,576 bytes
directory of c:\windows\winsxs\amd64_microsoft-windows-kernel32_31bf3856ad364e35_10.0.15063.0_none_a4d1be7a8f1a4216
05/30/2017 01:45 pm 19,984 kernel32.dll
1 file(s) 19,984 bytes
directory of c:\windows\winsxs\amd64_microsoft-windows-kernel32_31bf3856ad364e35_10.0.15063.296_none_289f5225bcc26659
05/30/2017 01:39 pm 708,712 kernel32.dll
1 file(s) 708,712 bytes
directory of c:\windows\winsxs\wow64_microsoft-windows-kernel32_31bf3856ad364e35_10.0.15063.0_none_af2668ccc37b0411
05/30/2017 01:55 pm 7,072 kernel32.dll
1 file(s) 7,072 bytes
directory of c:\windows\winsxs\wow64_microsoft-windows-kernel32_31bf3856ad364e35_10.0.15063.296_none_32f3fc77f1232854
05/30/2017 01:39 pm 599,576 kernel32.dll
1 file(s) 599,576 bytes
the install pc (win10(64)) has 6 different copies of kernel32.dll . how application supposed know 1 use?
my virtual development pc (winxt(32)) has these 2 copies of richtx32.ocx:
c:>dir /s richtx32.ocx
volume in drive c has no label.
volume serial number f432-f929
directory of c:\program files\clark_anderson\querymgr
03/09/2004 12:00 212,240 richtx32.ocx
1 file(s) 212,240 bytes
directory of c:\windows\system32
03/09/2004 12:00 212,240 richtx32.ocx
1 file(s) 212,240 bytes
my 'tainted' host development pc win7(x64) has these copies of richtx32.ocx:
c:>dir /s richtx32.ocx
volume in drive c os
volume serial number 70f2-883e
directory of c:\program files (x86)\clark_anderson\querymgr
03/09/2004 12:00 212,240 richtx32.ocx
1 file(s) 212,240 bytes
directory of c:\program files (x86)\microsoft visual studio\common\tools\vb\controls\controls_backup
03/09/2004 12:00 212,240 richtx32.ocx
1 file(s) 212,240 bytes
directory of c:\windows\syswow64
02/16/2010 03:22 pm 218,432 richtx32.ocx
1 file(s) 218,432 bytes
the unsuccessful install pc win10(x64) has copies installed nsis script e.g.:
c:>dir /s richtx32.ocx
volume in drive c os
volume serial number 48c7-50d7
directory of c:\program files (x86)\clark_anderson\querymgr
03/09/2004 12:00 212,240 richtx32.ocx
1 file(s) 212,240 bytes
does know significance of this? efforts use reg-free install prevent applications interfering other applications , permitting clean uninstall, again not interfering other applications , data.
i created test application, requested, 1 form 1 richtextbox control. manifest in 1 of comments, below:
nsis script way have creating install of application on pc.
i have little experience windows 10. did find event viewer. see few errors in windows logs/system: distributedcom eventid 10016 occurred once(2) since installed zrichtx application (not several times tried run it)
in same way found error: windows logs/application: application error eventid 1000 task category (100), not respond uninstall , install , few attempts run application end in same error message: component richtx32.ocx not correctly registered ...
i on head parts of installing vb6 applications on (x64) windows 10 , windows 7. why came asking experts.
================= begin activation context generation. input parameter: flags = 0 processorarchitecture = wow32 culturefallbacks = en-us;en manifestpath = c:\program files (x86)\clark_anderson\zrichtx\zrichtx.exe.manifest assemblydirectory = c:\program files (x86)\clark_anderson\zrichtx\ application config file = ----------------- info: parsing manifest file c:\program files (x86)\clark_anderson\zrichtx\zrichtx.exe.manifest. info: manifest definition identity zrichtx.exe,type="win32",version="2.4.0.14". info: reference: stdole2.tlb,type="win32",version="5.1.2600.5512" info: reference: richtx32.ocx,type="win32",version="6.1.97.82" info: resolving reference stdole2.tlb,type="win32",version="5.1.2600.5512". info: resolving reference processorarchitecture stdole2.tlb,type="win32",version="5.1.2600.5512". info: resolving reference culture neutral. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: attempt probe manifest @ c:\program files (x86)\clark_anderson\zrichtx\stdole2.tlb.dll. info: attempt probe manifest @ c:\program files (x86)\clark_anderson\zrichtx\stdole2.tlb.manifest. info: manifest found @ c:\program files (x86)\clark_anderson\zrichtx\stdole2.tlb.manifest. info: end assembly probing. info: resolving reference stdole2.tlb.mui,language="*",type="win32",version="5.1.2600.5512". info: resolving reference processorarchitecture stdole2.tlb.mui,language="*",type="win32",version="5.1.2600.5512". info: resolving reference culture en-us. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: did not find manifest culture en-us. info: end assembly probing. info: resolving reference culture en. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: did not find manifest culture en. info: end assembly probing. info: resolving reference richtx32.ocx,type="win32",version="6.1.97.82". info: resolving reference processorarchitecture richtx32.ocx,type="win32",version="6.1.97.82". info: resolving reference culture neutral. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: attempt probe manifest @ c:\program files (x86)\clark_anderson\zrichtx\richtx32.ocx.dll. info: attempt probe manifest @ c:\program files (x86)\clark_anderson\zrichtx\richtx32.ocx.manifest. info: manifest found @ c:\program files (x86)\clark_anderson\zrichtx\richtx32.ocx.manifest. info: end assembly probing. info: resolving reference richtx32.ocx.mui,language="*",type="win32",version="6.1.97.82". info: resolving reference processorarchitecture richtx32.ocx.mui,language="*",type="win32",version="6.1.97.82". info: resolving reference culture en-us. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: did not find manifest culture en-us. info: end assembly probing. info: resolving reference culture en. info: applying binding policy. info: no binding policy redirect found. info: begin assembly probing. info: did not find assembly in winsxs. info: did not find manifest culture en. info: end assembly probing. info: parsing manifest file c:\program files (x86)\clark_anderson\zrichtx\stdole2.tlb.manifest. info: manifest definition identity stdole2.tlb,type="win32",version="5.1.2600.5512". info: parsing manifest file c:\program files (x86)\clark_anderson\zrichtx\richtx32.ocx.manifest. info: manifest definition identity richtx32.ocx,type="win32",version="6.1.97.82". info: activation context generation succeeded. end activation context generation.
you right. found how open cmd prompt admin. these results. make sense you?
you right. found how open cmd prompt admin. above results. make sense you?
i running out of time. windows10(x64) test pc going away, soon. on windows7(x64) test pc, sxstrace parsed file empty? if logon administrator zrichtx program works?!
i created administrator logon on windows10(x64) test pc... running zrichtx there gets same error msg, sxstrace, again comes empty?!
take nsis out of equation, not relevant problem @ hand.
i think best way solve problem diagnose on own.
start new vb project , add problematic ocx control , minimal required amount of code reproduce problem on machine issue. look @ event log , run sxstrace try figure out why cannot find component...
Comments
Post a Comment