vb6"regfreecom"自动创建ocx文件的清单 [英] vb6 "regfreecom" autocreate manifest for ocx file
问题描述
我认为我需要为MSCOMCTL.ocx创建一个清单文件,以便在我的VB6应用程序中使用(免费注册)
我还需要更新/创建.res文件,然后我将需要使用ManifestCreatorII已经有几年了(2017),我已经忘记了步骤并且找不到我的旧笔记.
我要记住如何与NSI一起使用以生成安装软件包.否则,我将无法在新的Win 10 PC上运行我的应用程序.
I think I need to create a manifest file for MSCOMCTL.ocx to use in my VB6 application (reg free)
I will also need to update/create the .res file Then I will need to use ManifestCreatorII It has been a few years (2017) and I have forgotten the steps and cannot find my old notes.
I ~remember how to work with the NSI to generate the install package. Without this, I cannot get my applications to run on a new Win 10 PC.
我的开发PC是运行Windows XP(32位)Service Pack 3的虚拟PC.我正在使用Visual Basic 6.0(SP6)进行编程.
My Development PC is a virtual PC running Windows XP (32bit) Service Pack 3. I am programming with Visual Basic 6.0 (SP6).
通过这些实验告诉我,我确实不需要确实确实需要VB6程序中用于组件的每个Dependency .ocx文件的清单文件.
Working through these experiments taught me that I do NOT really need manifest files for each of the Dependency .ocx files used for the Components in my VB6 programs.
我实际上只需要一个清单文件即可用于整个应用程序,并且该清单文件用于为项目创建资源文件.
I really only need the one manifest file for the application program as a whole and that is used to create the Resource file for the project.
我的问题是在我安装NSIS软件包并在新的Win10(64)PC上运行其VB6程序时首先出现的:
My problem was first indicated when I installed the NSIS package and ran its VB6 program on a new Win10(64) PC:
Run-time error 339: Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid
当我尝试打开一个最近添加的表单时,收到了此错误消息.
I got this Error message when I tried to open one of the more recently added forms.
此表单的独特功能是使用引用MSCOMCTL.ocx的选项卡式对话控件(TabStrip).
A unique feature of this form is the use of Tabbed Dialogue Controls (TabStrip) which references MSCOMCTL.ocx.
re: https://www.processlibrary.com/en/目录/文件/mscomctl/19764/
mscomctl.ocx is an ActiveX Control module that contains common controls used by Windows, such as ImageCombo, ImageList, ListView, ProgressBar, Slider, StatusBar, TabStrip, ToolBar, and TreeView controls.
我创建了一个微型程序zMSCOMCTL,该程序的一种形式仅包含来自一个MSCOMCTL.ocx组件的两个控件(TabStrip和ProgressBar).
I created a tiny program, zMSCOMCTL, which has one form containing only two controls (TabStrip and ProgressBar) both from the one MSCOMCTL.ocx Component.
我抄袭了我类似的小型程序的VB6代码和NSIS(例如:zRichTx,zThreeD,zCOMDLG).
I plagiarized from VB6 code and NSIS of my similar tiny programs (e.g.: zRichTx, zThreeD, zCOMDLG).
当我在新的Win10(64)PC上安装并尝试运行zMSCOMCTL时,出现以下错误消息:运行时错误339:组件'MSCOMCTL.OCX'或其依赖项之一未正确注册:一个文件丢失或无效
When I install and try to run zMSCOMCTL on my new Win10(64) PC, I get this same error message: Run-time error 339: Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid
我从 https://www.ocxme.com 下载了MSCOMCTL.ocx版本6.1.98.46.
I downloaded a copy MSCOMCTL.ocx version 6.1.98.46 from https://www.ocxme.com
这些说明基于: https://originaldll.com/file/mscomctl .ocx/16903.html
- 制作以下文件的备份副本:
C:\WINDOWS\system32\MSCOMCTL.*
- 在命令提示符窗口中:
regsvr32 /u MSCOMCTL.ocx
- 已删除
C:\WINDOWS\system32\MSCOMCTL.*
- 将新的
MSCOMCTL.ocx
复制到C:\WINDOWS\system32
- 重新启动
- 在命令提示符窗口中:
regsvr32 MSCOMCTL.ocx
- Made a backup copy of:
C:\WINDOWS\system32\MSCOMCTL.*
- In the Command Prompt Window:
regsvr32 /u MSCOMCTL.ocx
- Deleted
C:\WINDOWS\system32\MSCOMCTL.*
- Copied the new
MSCOMCTL.ocx
intoC:\WINDOWS\system32
- REBOOT
- In the Command Prompt Window:
regsvr32 MSCOMCTL.ocx
A.创建MSCOMCTL.ocx.manifest:
A. create MSCOMCTL.ocx.manifest:
- 在命令提示符窗口中:regsvr42 MSCOMCTL.ocx
- 我使用NotePad ++进行了修改
-
.sxs.
更改为.ocx.
-
type="win32"
更改为processorArchitecture="x86" type="win32"
-
<file name="MSCOMCTL.ocx">
更改为<file name="Dependencies\MSCOMCTL.ocx">
- In the Command Prompt Window:regsvr42 MSCOMCTL.ocx
- I used NotePad++ to Modify
.sxs.
changed to.ocx.
type="win32"
changed toprocessorArchitecture="x86" type="win32"
<file name="MSCOMCTL.ocx">
changed to<file name="Dependencies\MSCOMCTL.ocx">
为了提高ManifestCreatorv2.0.3接受MSCOMCTL.ocx.manifest文件而不是需要ClipBoard复制的机会. (没有srtrange字符或空格)
To improve chances of ManifestCreatorv2.0.3 accepting MSCOMCTL.ocx.manifest file instead of requiring ClipBoard copy. (No srtrange characters or blanks)
- 首先,使用记事本++编辑MSCOMCTL.ocx.manifest
- 全选,复制,粘贴到记事本中并保存到MSCOMCTL.ocx.manifest
B.创建zMSCOMCTL.exe.manifest
B. Create zMSCOMCTL.exe.manifest
- 打开ManifestCreatorv2.0.3:
- 清单>从项目文件(vbp)创建zMSCOMCTL.vbp
- 清单>追加/合并清单-从文件MSCOMCTL.ocx.manifest
- 清单>导出清单-目标磁盘文件
- 保存到zMSCOMCTL.exe.manifest(替换)
re: http://www.vbforums.com/showthread.php?845909-VB6-Manifest-Creator-II
C.创建zMSCOMCTL.res
C. Create zMSCOMCTL.res
-
关闭VB6 zMSCOMCTL项目或从项目中删除zMSCOMCTL.res
Shut Down VB6 zMSCOMCTL Project or remove zMSCOMCTL.res from Project
打开ManifestCreatorv2.0.3:
Open ManifestCreatorv2.0.3:
清单>从项目文件(vbp)创建zMSCOMCTL.vbp
The Manifest > Create from Project File (vbp) zMSCOMCTL.vbp
清单>追加/合并清单-从文件MSCOMCTL.ocx.manifest
The Manifest > Append/Merge Manifest - From file MSCOMCTL.ocx.manifest
清单>出口舱单
- [_]缩进清单
- [_]不要使用前缀名称空间
- [x]不导出空/空白属性
- 目标资源文件-保存到zMSCOMCTL.res(替换)
D.制作新的zMSCOMCTL.exe
D. Make new zMSCOMCTL.exe
- 打开VB6 zMSCOMCTL项目或将zMSCOMCTL.res添加回Project
- 在VB6 zMSCOMCTL项目中,从完全编译开始:运行正常
- 在VB6 zMSCOMCTL项目中,文件->制作新的可执行文件:
运行新的可执行文件:zMSCOMCTL.exe,结果为:
Running the new executable: zMSCOMCTL.exe Results in:
This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
这是 FIRST试用方法(失败)的结束
回复: VB6 TABCTL32的RegFreeCom SideBySide SxS清单测试. ocx
我从 https://github.com/wqweto/UMMM
[查找文件] [_ Clone_or_download_v]
Click on the Green Button
使用HTTPS克隆 通过Web URL使用Git或SVN结帐.
Clone with HTTPS Use Git or checkout with SVN using the web URL.
[ https://github.com/wqweto/UMMM.git ]
[ Open_in_Desktop ] [ Download_ZIP ]
Then Click on Download_ZIP Button
- 我扩展了下载的UMMM-master.zip文件.
- 生成的.\ src文件夹包含文件:mdUmmm.bas和Ummm.vbp.
- 我将它们复制到了自己的UMMM-master Project文件夹中
- 我快速浏览了mdUmmm.bas和Ummm.vbp.
- 提到
SysWOW64
的Ummm.vbp. - 在记事本中,我将其更改为
System32
.Development platform is WinXP(32)
- 我用VB6打开了Ummm.vbp
- 我做了一个文件-创建UMMM.exe
- 我将UMMM.exe复制到C:\ Program Files \ Support Tools \
in %path%
- I expanded the downloaded UMMM-master.zip file.
- The resulting .\src folder contained files: mdUmmm.bas and Ummm.vbp.
- I copied them to their own UMMM-master Project folder
- I took a quick look at mdUmmm.bas and Ummm.vbp.
- The Ummm.vbp referred to
SysWOW64
. - In Notepad, I changed it to
System32
.Development platform is WinXP(32)
- I opened Ummm.vbp with VB6
- I did a File - Make to create UMMM.exe
- I copied UMMM.exe to C:\Program Files\Support Tools\
in %path%
这些是我为UMMM
Unattended Make My Manifest
找到的参考链接:These are the reference links I have found for UMMM
Unattended Make My Manifest
:- https://github.com/wqweto/UMMM
- 生成清单文件以进行免注册的COM
- 免费注册的COM:引用VB6 DLL的VB6可执行文件
- https://github.com/wqweto/UMMM/blob/master/Sample.ini
- http://www .vbforums.com/showthread.php?840333-SXS-and-UMMM-with-inter-thread-marshalling
- https://github.com/wqweto/UMMM/issues/9
- https://github.com/wqweto/UMMM/issues/16
- https://github.com/wqweto/UMMM
- Generate manifest files for registration-free COM
- Registration free COM: VB6 Executable referencing VB6 DLL
- https://github.com/wqweto/UMMM/blob/master/Sample.ini
- http://www.vbforums.com/showthread.php?840333-SXS-and-UMMM-with-inter-thread-marshalling
- https://github.com/wqweto/UMMM/issues/9
- https://github.com/wqweto/UMMM/issues/16
第一个链接是我创建.ini文件的线索.
第六个链接帮助我创建了一个似乎有效的蝙蝠文件!The 1st link is where I got my clues to create the .ini file.
The 6th link helped me create a bat file that seems to work!zMSCOMCTLUMMM.ini
此.ini文件,在标识"行之后,包含依赖性文件列表.它们列在.vbp文件中(例如:Object = {831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.2#0; mscomctl.ocx).
This .ini file, following the Identity line, contains a list of dependency files. They are listed in the .vbp file (e.g.: Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.2#0; mscomctl.ocx ).
您还可以在VB6菜单>中找到它们.专案>组件...
You can also find them itemized within VB6 Menu > Project > Components ...
在该组件"表单上,您可以选择[x]仅选定项以更轻松地查看列表.
On that Components form, you can choose [x] Selected Items Only to more easily view the list.
突出显示列表中的每个组件,如下所示:(例如:位置C:\ ... \ MSCOMCTL.OCX)
Highlighting each Component in the list will display, below: (e.g.: Location C:\ ... \MSCOMCTL.OCX )
在.ini文件中,我指定了依赖文件的路径,因为它没有存储在本地Project文件夹中.
In the .ini file, I specify the path to the dependency file because it is not stored in the local Project folder.
Identity zMSCOMCTL.exe zMSCOMCTL.exe "MSCOMCTL Test program 1.0" File C:\WINDOWS\system32\mscomctl.ocx
zMSCOMCTLUMMM.bat
UMMM.exe zMSCOMCTLUMMM.ini .\manifest\zMSCOMCTL.exe.manifest pause done?
我用记事本编辑了生成的 zMSCOMCTL.exe.manifest 并进行了更改:
I edited the resulting zMSCOMCTL.exe.manifest with Notepad and changed:
From: <file name="..\..\..\..\WINDOWS\system32\MSCOMCTL.ocx"> To: <file name="Dependencies\MSCOMCTL.ocx">
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assemblyIdentity name="zMSCOMCTL" processorArchitecture="X86" type="win32" version="1.1.0.24" /> <description>MSCOMCTL Test program 1.0</description> <file name="Dependencies\MSCOMCTL.ocx"> <typelib tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" version="2.2" flags="control,hasdiskimage" helpdir="" /> <comClass clsid="{1EFB6596-857C-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.TabStrip.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"> <progid>MSComctlLib.TabStrip</progid> </comClass> <comClass clsid="{24B224E0-9545-4A2F-ABD5-86AA8A849385}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{9A948063-66C3-4F63-AB46-582EDAA35047}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{66833FE6-8583-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.Toolbar.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,simpleframe,setclientsitefirst"> <progid>MSComctlLib.Toolbar</progid> </comClass> <comClass clsid="{7DC6F291-BF55-4E50-B619-EF672D9DCC58}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,simpleframe,setclientsitefirst" /> <comClass clsid="{8B2ADD10-33B7-4506-9569-0A1E1DBBEBAE}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,simpleframe,setclientsitefirst" /> <comClass clsid="{8E3867A3-8586-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.SBarCtrl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,setclientsitefirst"> <progid>MSComctlLib.SBarCtrl</progid> </comClass> <comClass clsid="{627C8B79-918A-4C5C-9E19-20F66BF30B86}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,setclientsitefirst" /> <comClass clsid="{585AA280-ED8B-46B2-93AE-132ECFA1DAFC}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,setclientsitefirst" /> <comClass clsid="{35053A22-8589-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.ProgCtrl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,setclientsitefirst"> <progid>MSComctlLib.ProgCtrl</progid> </comClass> <comClass clsid="{A0E7BF67-8D30-4620-8825-7111714C7CAB}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,actslikelabel,alignable,setclientsitefirst" /> <comClass clsid="{C74190B6-8589-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.TreeCtrl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"> <progid>MSComctlLib.TreeCtrl</progid> </comClass> <comClass clsid="{9181DC5F-E07D-418A-ACA6-8EEA1ECB8E9E}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{95F0B3BE-E8AC-4995-9DCA-419849E06410}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{DD2DBE12-F9F8-4E32-B087-DAD1DCEF0783}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{BDD1F04B-858B-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.ListViewCtrl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"> <progid>MSComctlLib.ListViewCtrl</progid> </comClass> <comClass clsid="{996BF5E0-8044-4650-ADEB-0B013914E99C}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{979127D3-7D01-4FDE-AF65-A698091468AF}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{CCDB0DF2-FD1A-4856-80BC-32929D8359B7}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{2C247F23-8591-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.ImageListCtrl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,invisibleatruntime,alignable,setclientsitefirst"> <progid>MSComctlLib.ImageListCtrl</progid> </comClass> <comClass clsid="{F91CAF91-225B-43A7-BB9E-472F991FC402}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,invisibleatruntime,alignable,setclientsitefirst" /> <comClass clsid="{556C2772-F1AD-4DE1-8456-BD6E8F66113B}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,invisibleatruntime,alignable,setclientsitefirst" /> <comClass clsid="{F08DF954-8592-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.Slider.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"> <progid>MSComctlLib.Slider</progid> </comClass> <comClass clsid="{0B314611-2C19-4AB4-8513-A6EEA569D3C4}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> <comClass clsid="{DD9DA666-8594-11D1-B16A-00C0F0283628}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" progid="MSComctlLib.ImageComboCtl.2" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"> <progid>MSComctlLib.ImageComboCtl</progid> </comClass> <comClass clsid="{87DACC48-F1C5-4AF3-84BA-A2A72C2AB959}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst" /> </file> </assembly>
接下来使用ManifestCreatorv2.0.3创建zMSCOMCTL.res文件
-
清单>从项目文件(vbp)创建zMSCOMCTL.vbp
The Manifest > Create from Project File (vbp) zMSCOMCTL.vbp
清单>追加/合并清单-来自文件[例如: .\ manifest \ MSCOMCTL.exe.manifest]
The Manifest > Append/Merge Manifest - From file [e.g.: .\manifest\MSCOMCTL.exe.manifest]
清单>出口舱单>
The Manifest > Export Manifest >
[_]缩进清单
- [_]不要使用前缀名称空间
- [x]不导出空/空白属性
- 目标资源文件-保存到zMSCOMCTL.res(替换)
打开VB6 zMSCOMCTL项目或将zMSCOMCTL.res添加回Project
Open VB6 zMSCOMCTL Project or Add zMSCOMCTL.res back into Project
编译,构建和测试程序.
- 在VB6 zMSCOMCTL项目中,以完全编译开始:运行正常
- 在VB6 zMSCOMCTL项目中,文件->制作新的可执行文件:
- 保存项目
Running zMSCOMCTL.exe from with in its Project folder: `[Run-Error 7 out of memory?]`
构建并使用NSIS文件创建SxS安装文件,以便在任何目标PC上进行测试.
Build and use the NSIS file to create the SxS installation file for testing on any target PCs.
NSIS文件将构建可执行程序以:
- Determine if the target operating system is [AtLeastWinVista] and if it is [RunningX64]. - Request a selection from the available Harddrives / Partitions for installation. - Based on this criteria, it creates an InstallDirectory and an InstallDirectory\Dependencies subdirectory. - Copies the Program.exe into the InstallDirectory. - Copies the Dependency files into the InstallDirectory\Dependencies subdirectory. - Also based on this criteria it creates a Public read/write data directory. - Creates desktop shortcut - Creates start-menu items - Creates an Uninstall mechanism
我调整了NSIS文件,使其仅安装.vbp文件,UMMM.ini文件以及生成的.exe.manifest文件中列出的依赖项文件.
I adjusted the NSIS file to install only the dependency files listed in the .vbp file, the UMMM.ini file and in the resulting .exe.manifest file.
安装在WinXP(32)上可以正常运行
安装在Win7(64)上可以正常工作
安装在Win10(64)上可以正常使用Installed on WinXP(32) works OK
Installed on Win7(64) works OK
Installed on Win10(64) works OK推荐答案
这是我维护的VB6应用之一的清单文件中的条目:
Here is the entry from the manifest file from one of the VB6 apps I maintain:
<assemblyIdentity name="name of application" processorArchitecture="X86" type="win32" version="a.b.c.d" />
...
<file name="tabctl32.ocx"> <typelib tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" version="1.1" flags="control,hasdiskimage" helpdir="" /> <comClass clsid="{BDC217C5-ED16-11CD-956C-0000C04E4C0A}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" progid="TabDlg.SSTab.1" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,simpleframe,setclientsitefirst"> <progid>TabDlg.SSTab</progid> </comClass> <comClass clsid="{942085FD-8AEE-465F-ADD7-5E7AA28F8C14}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,simpleframe,setclientsitefirst" /> </file>
使用 https://github.com/wqweto/UMMM 从OCS版本6.1.98.39生成使用INI配置文件行,如下所示:
generated from OCS version 6.1.98.39 using https://github.com/wqweto/UMMM using a INI configuration file line like so:
File tabctl32.ocx
这与问题中的问题有些不同:
This is somewhat different from the one in the question:
-
具有文件的相对路径
Has a relative path to the file
不同的类别列表
各种不同的属性
不用实验就很难说出这些差异的重要性.
Hard to say without experimentation how important those differences might be.
我强烈建议您在Process Monitor中记录程序,并查看日志中是否出现错误.通常,这就是我识别棘手的清单问题的方式.
I highly recommend logging your program in Process Monitor and seeing what if any errors you get in the log. This is usually how I identify tricky manifest problems.
这篇关于vb6"regfreecom"自动创建ocx文件的清单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
-