我有一个VB6 ActiveX dll,它依赖于ComDlg32.ocx。这个ActiveX dll是从.NET应用程序中调用的。
该ActiveX dll具有一个公共接口,其中包含1个方法,该方法打开一个表单,该表单打开一个打开文件对话框(来自ComDlg32.ocx)。.NET应用程序有一个按钮,将调用此ActiveX dll方法。
当ComDlg32.ocx和ActiveX dll都注册(通过regsvr32)时,所有这些都可以正常工作,但我需要使用RegFree COM使其至少适用于ActiveX dll的依赖项。我已为此ActiveX dll制作了一个清单文件,但似乎没有被读取。 ProcMon没有引用清单文件,sxstrace也没有给我任何信息(解析etl文件时实际上是一个空白文本文件)。
我已经尝试过为dll使用外部清单和嵌入清单,但仍没有成功。我一定漏了些东西,但所有我能找到的信息都是关于如何为exe创建清单文件,而没有关于如何处理有自己依赖项的ActiveX dll的信息。
如果有人有任何信息,我将非常感激。
当ComDlg32.ocx和ActiveX dll都注册(通过regsvr32)时,所有这些都可以正常工作,但我需要使用RegFree COM使其至少适用于ActiveX dll的依赖项。我已为此ActiveX dll制作了一个清单文件,但似乎没有被读取。 ProcMon没有引用清单文件,sxstrace也没有给我任何信息(解析etl文件时实际上是一个空白文本文件)。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity name="DeployArchitectureTest" version="1.0.0.0" type="win32" processorArchitecture="x86"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<file name="COMDLG32.OCX">
<typelib tlbid="{F9043C88-F6F2-101A-A3C9-08002B2F49FB}" version="1.2" flags="control,hasdiskimage" helpdir="" />
<comClass clsid="{F9043C85-F6F2-101A-A3C9-08002B2F49FB}" tlbid="{F9043C88-F6F2-101A-A3C9-08002B2F49FB}" progid="MSComDlg.CommonDialog.1" threadingModel="Apartment" miscStatus="" miscStatusContent="recomposeonresize,onlyiconic,cantlinkinside,insideout,activatewhenvisible,invisibleatruntime,setclientsitefirst">
<progid>MSComDlg.CommonDialog</progid>
</comClass>
</file>
</assembly>
我已经尝试过为dll使用外部清单和嵌入清单,但仍没有成功。我一定漏了些东西,但所有我能找到的信息都是关于如何为exe创建清单文件,而没有关于如何处理有自己依赖项的ActiveX dll的信息。
如果有人有任何信息,我将非常感激。