我有一个使用 COM 对象的 Excel 应用程序。
COM 对象是 VB.net,并在针对“任何 CPU”的 Visual Studio 中编译。
我仅为当前用户注册 COM 对象。我的 NSIS 安装程序执行以下操作:
NSIS 运行 Regasm 并输出 reg 文件。
NSIS 将 reg 文件中的“[HKEY_CLASSES_ROOT”的所有实例替换为“[HKEY_CURRENT_USER\Software\Classes”。
NSIS 执行 reg 文件并创建所有适当的注册表项。
这适用于:
Windows 10 64 位/Excel 64 位
Windows 10 32 位/Excel 32 位
但是,我遇到了错误:
Windows 10 64 位 / Excel 32 位
对于 Windows 10 64 位/Excel 32 位,我的理解是我必须将“[HKEY_CLASSES_ROOT”替换为“[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node”
我在 NSIS 中执行此操作,但 Excel 32 位会引发错误“无法创建 ActiveX 组件。”
我尝试将“[HKEY_CLASSES_ROOT”替换为“[HKEY_CURRENT_USER\SOFTWARE\Classes”,但随后 Excel 出现错误“类未注册。”
如果我更改 reg 文件以仅使用“[HKEY_CLASSES_ROOT”(并忘记为当前用户注册)Excel 32 位可以很好地实例化 COM 对象。
问题是我只想为当前用户注册COM对象。
我应该使用当前用户的哪个注册表路径,但 Windows 64 位上的 Excel 32 位可以实例化它?
这是失败的 reg 文件,其中“[HKEY_CLASSES_ROOT”已替换为“[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node”:
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.My.MySettings]
@="LicenseManager.My.MySettings"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.My.MySettings\CLSID]
@="{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}]
@="LicenseManager.My.MySettings"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.My.MySettings"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.My.MySettings"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\ProgId]
@="LicenseManager.My.MySettings"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedEnums]
@="LicenseManager.clsSharedEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedEnums\CLSID]
@="{E24584F3-CD27-34B7-B8B5-4986784ACEE6}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}]
@="LicenseManager.clsSharedEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\ProgId]
@="LicenseManager.clsSharedEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedGlobals]
@="LicenseManager.clsSharedGlobals"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedGlobals\CLSID]
@="{E86A81E1-2926-3C9D-A667-02954898E09E}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}]
@="LicenseManager.clsSharedGlobals"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedGlobals"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedGlobals"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\ProgId]
@="LicenseManager.clsSharedGlobals"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedMethods]
@="LicenseManager.clsSharedMethods"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedMethods\CLSID]
@="{09CFD406-B291-33AC-A0CD-145760ED3428}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}]
@="LicenseManager.clsSharedMethods"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedMethods"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedMethods"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\ProgId]
@="LicenseManager.clsSharedMethods"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedValidations]
@="LicenseManager.clsSharedValidations"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsSharedValidations\CLSID]
@="{3992C5E2-1D50-3A99-B951-B6D2B83FF365}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}]
@="LicenseManager.clsSharedValidations"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedValidations"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedValidations"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\ProgId]
@="LicenseManager.clsSharedValidations"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsEnums]
@="LicenseManager.clsEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsEnums\CLSID]
@="{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}]
@="LicenseManager.clsEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\ProgId]
@="LicenseManager.clsEnums"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsLM]
@="LicenseManager.clsLM"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsLM\CLSID]
@="{D7128D56-C022-3F4A-9200-777C260C40EA}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}]
@="LicenseManager.clsLM"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsLM"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsLM"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\ProgId]
@="LicenseManager.clsLM"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsPublicTypes]
@="LicenseManager.clsPublicTypes"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.clsPublicTypes\CLSID]
@="{47913F05-609A-384C-A44A-26735CCC1F57}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}]
@="LicenseManager.clsPublicTypes"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsPublicTypes"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsPublicTypes"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\ProgId]
@="LicenseManager.clsPublicTypes"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.JSONLicense]
@="LicenseManager.JSONLicense"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\LicenseManager.JSONLicense\CLSID]
@="{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}]
@="LicenseManager.JSONLicense"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.JSONLicense"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.JSONLicense"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\ProgId]
@="LicenseManager.JSONLicense"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\Record\{46C43862-DC65-3BF1-8D9A-B315AF9FA80D}\1.0.0.0]
"Class"="LicenseManager.clsSharedEnums+enuLMForms"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\Record\{7DAF1AFB-548E-3A9C-B003-BBFCFEE27533}\1.0.0.0]
"Class"="LicenseManager.clsEnums+enuLicenseErrors"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\Record\{12C1B614-7200-38DB-A4C3-D88B23300A65}\1.0.0.0]
"Class"="LicenseManager.clsLM+enuChangeSettingsIniFile"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\Record\{40B82F7E-0D53-39AC-982C-3B0D058F65D9}\1.0.0.0]
"Class"="LicenseManager.clsLM+enuCertificateOverride"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\Record\{2AFA5EDE-930C-3023-848E-B8B58963FF24}\1.0.0.0]
"Class"="LicenseManager.clsPublicTypes+typLicenseInfo"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/LicenseManager.dll"
这是所有用户注册到 [HKEY_CLASSES_ROOT] 的 reg 文件。奇怪的是,如果我导入两个 reg 文件:
和
然后 COM 对象就可以在 Windows 64 位的 Excel 32 位中实例化。
我必须将两者导入到“[HKEY_CLASSES_ROOT”和“[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node”才能正常工作。
我需要了解这里发生了什么以及正确的方法是什么。
这是导入到“[HKEY_CLASSES_ROOT”的reg文件:
[HKEY_CLASSES_ROOT\LicenseManager.My.MySettings]
@="LicenseManager.My.MySettings"
[HKEY_CLASSES_ROOT\LicenseManager.My.MySettings\CLSID]
@="{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}"
[HKEY_CLASSES_ROOT\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}]
@="LicenseManager.My.MySettings"
[HKEY_CLASSES_ROOT\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.My.MySettings"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.My.MySettings"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\ProgId]
@="LicenseManager.My.MySettings"
[HKEY_CLASSES_ROOT\CLSID\{4DA8C0C5-425F-38A6-B63A-CD1090B22B25}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedEnums]
@="LicenseManager.clsSharedEnums"
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedEnums\CLSID]
@="{E24584F3-CD27-34B7-B8B5-4986784ACEE6}"
[HKEY_CLASSES_ROOT\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}]
@="LicenseManager.clsSharedEnums"
[HKEY_CLASSES_ROOT\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\ProgId]
@="LicenseManager.clsSharedEnums"
[HKEY_CLASSES_ROOT\CLSID\{E24584F3-CD27-34B7-B8B5-4986784ACEE6}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedGlobals]
@="LicenseManager.clsSharedGlobals"
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedGlobals\CLSID]
@="{E86A81E1-2926-3C9D-A667-02954898E09E}"
[HKEY_CLASSES_ROOT\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}]
@="LicenseManager.clsSharedGlobals"
[HKEY_CLASSES_ROOT\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedGlobals"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedGlobals"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\ProgId]
@="LicenseManager.clsSharedGlobals"
[HKEY_CLASSES_ROOT\CLSID\{E86A81E1-2926-3C9D-A667-02954898E09E}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedMethods]
@="LicenseManager.clsSharedMethods"
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedMethods\CLSID]
@="{09CFD406-B291-33AC-A0CD-145760ED3428}"
[HKEY_CLASSES_ROOT\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}]
@="LicenseManager.clsSharedMethods"
[HKEY_CLASSES_ROOT\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedMethods"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedMethods"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\ProgId]
@="LicenseManager.clsSharedMethods"
[HKEY_CLASSES_ROOT\CLSID\{09CFD406-B291-33AC-A0CD-145760ED3428}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedValidations]
@="LicenseManager.clsSharedValidations"
[HKEY_CLASSES_ROOT\LicenseManager.clsSharedValidations\CLSID]
@="{3992C5E2-1D50-3A99-B951-B6D2B83FF365}"
[HKEY_CLASSES_ROOT\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}]
@="LicenseManager.clsSharedValidations"
[HKEY_CLASSES_ROOT\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsSharedValidations"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsSharedValidations"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\ProgId]
@="LicenseManager.clsSharedValidations"
[HKEY_CLASSES_ROOT\CLSID\{3992C5E2-1D50-3A99-B951-B6D2B83FF365}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsEnums]
@="LicenseManager.clsEnums"
[HKEY_CLASSES_ROOT\LicenseManager.clsEnums\CLSID]
@="{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}"
[HKEY_CLASSES_ROOT\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}]
@="LicenseManager.clsEnums"
[HKEY_CLASSES_ROOT\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsEnums"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\ProgId]
@="LicenseManager.clsEnums"
[HKEY_CLASSES_ROOT\CLSID\{3D8E218E-9BC7-39A1-A513-FCD7A8F3B29C}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsLM]
@="LicenseManager.clsLM"
[HKEY_CLASSES_ROOT\LicenseManager.clsLM\CLSID]
@="{D7128D56-C022-3F4A-9200-777C260C40EA}"
[HKEY_CLASSES_ROOT\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}]
@="LicenseManager.clsLM"
[HKEY_CLASSES_ROOT\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsLM"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsLM"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\ProgId]
@="LicenseManager.clsLM"
[HKEY_CLASSES_ROOT\CLSID\{D7128D56-C022-3F4A-9200-777C260C40EA}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.clsPublicTypes]
@="LicenseManager.clsPublicTypes"
[HKEY_CLASSES_ROOT\LicenseManager.clsPublicTypes\CLSID]
@="{47913F05-609A-384C-A44A-26735CCC1F57}"
[HKEY_CLASSES_ROOT\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}]
@="LicenseManager.clsPublicTypes"
[HKEY_CLASSES_ROOT\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.clsPublicTypes"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.clsPublicTypes"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\ProgId]
@="LicenseManager.clsPublicTypes"
[HKEY_CLASSES_ROOT\CLSID\{47913F05-609A-384C-A44A-26735CCC1F57}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\LicenseManager.JSONLicense]
@="LicenseManager.JSONLicense"
[HKEY_CLASSES_ROOT\LicenseManager.JSONLicense\CLSID]
@="{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}"
[HKEY_CLASSES_ROOT\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}]
@="LicenseManager.JSONLicense"
[HKEY_CLASSES_ROOT\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="LicenseManager.JSONLicense"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\InprocServer32\1.0.0.0]
"Class"="LicenseManager.JSONLicense"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\ProgId]
@="LicenseManager.JSONLicense"
[HKEY_CLASSES_ROOT\CLSID\{E01DBF39-ED8E-3975-8ECF-BA43D3D73DFF}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\Record\{46C43862-DC65-3BF1-8D9A-B315AF9FA80D}\1.0.0.0]
"Class"="LicenseManager.clsSharedEnums+enuLMForms"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\Record\{7DAF1AFB-548E-3A9C-B003-BBFCFEE27533}\1.0.0.0]
"Class"="LicenseManager.clsEnums+enuLicenseErrors"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\Record\{12C1B614-7200-38DB-A4C3-D88B23300A65}\1.0.0.0]
"Class"="LicenseManager.clsLM+enuChangeSettingsIniFile"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\Record\{40B82F7E-0D53-39AC-982C-3B0D058F65D9}\1.0.0.0]
"Class"="LicenseManager.clsLM+enuCertificateOverride"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"
[HKEY_CLASSES_ROOT\Record\{2AFA5EDE-930C-3023-848E-B8B58963FF24}\1.0.0.0]
"Class"="LicenseManager.clsPublicTypes+typLicenseInfo"
"Assembly"="LicenseManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/MatthewB/AppData/Local/Stat Cruncher/Bin/licensemanager.dll"```
您是否在 x64 机器上运行 x32 位版本的 regasm?有两个版本,一种用于 x64 位,一种用于 x32 位。
另一方面,也许你100%避免注册该对象,并让VBA“侧面”加载.dll,这样你就不必注册,而这些天计算机被锁定的方式,那么你会要求对注册表进行零更改,并且只需要将 .dll 复制到目标计算机。因此,您不需要提升安装权限。
我想这实际上取决于一堆/许多 Excel 工作表是否需要 COM 对象,或者这只是一个 Excel 应用程序?我最好的猜测是你没有使用 regasm 32 位。
因此,x64 位可以在以下位置找到:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe
x32 位可以在以下位置找到:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe
那么,在 Windows x64 位机器上运行 x32 位 Office/Excel?
然后您将使用上面的 regAsm.exe 的第二个版本