我正在努力让最简单的免注册COM项目在64位 Windows7中运行! COM组件也是最简单的vb.NET DLL,它在注册时可以从VB6 EXE中正常工作. 任何人都可以建议为什么清单不起作用? 我已经尝试用mt.
COM组件也是最简单的vb.NET DLL,它在注册时可以从VB6 EXE中正常工作.
任何人都可以建议为什么清单不起作用?
我已经尝试用mt.exe更新任何VB6内部清单,但一般错误表明Project2.exe中没有内部清单
VB6程序(Project2.exe)清单是……
<assemblyIdentity name="Project2.exe" version="1.0.0.0" type="win32" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity name="ClassLibrary1" version="1.0.0.0" type="win32"/>
</dependentAssembly>
</dependency>
</assembly>
并且DLL(ClassLibrary1.dll)清单是…..
<assemblyIdentity name="ClassLibrary1" version="1.0.0.0" type="win32"/>
<clrClass
name="ClassLibrary1.Class1"
clsid="{D9531C2A-3822-4222-8D45-BC507FCDF5F3}"
progid="ClassLibrary1.Class1"
threadingModel="Both"/>
<file name="ClassLibrary1.tlb">
<typelib
tlbid="{DA8A00C1-1E14-4295-AEDE-F8F23DD8E43D}"
version="1.0"
helpdir=""
flags="hasdiskimage"/>
</file>
</assembly>
假设Ids是正确的,清单是正确的.所以你的问题是别的.你得到什么错误信息?
我成功地使用了RegFree Com,一旦你有了清单,它就给我带来了无数的麻烦.我不嵌入它们.我为此使用了Maze软件中的Side-by-Side Manifest Maker,它们非常有用,非常值得投资.我粘贴了应用程序清单和其中一个dll的清单,为您提供了一个工作示例.
Filename = MyVB6App.exe.Manifest(注意.exe.标记)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="MyVB6App.exe" version="2.8.0.127" type="win32" processorArchitecture="x86"/> <description>Built with: Side-by-Side Manifest Maker (3.7.1.4434) (x86)</description> <dependency> <dependentAssembly> <assemblyIdentity name="MyNetComWrapper" version="1.0.24.0" type="win32" publicKeyToken="6ABF096D69195FE6"/> </dependentAssembly> </dependency> </assembly>
Filename = MyNetComWrapper.Manifest(注意.dll.标记的abscense)
<assemblyIdentity name="MyNetComWrapper" version="1.0.24.0" type="win32" publicKeyToken="6ABF096D69195FE6"/>
<description>Built with: Side-by-Side Manifest Maker (3.7.1.4434) (x86)</description>
<clrClass
name="MyComNetWrapper.SomeClass"
clsid="{A68F56A1-8425-3E06-BA83-856EC8422F5B}"
progid="MyComNetWrapper.SomeClass"
runtimeVersion="v4.0.30319"
threadingModel="Both"/>
<clrClass
name="MyComNetWrapper.SomeOtherClass"
clsid="{D5156DAF-0421-36AE-84B6-5D915068B2DC}"
progid="MyComNetWrapperc.SomeOtherClass"
runtimeVersion="v4.0.30319"
threadingModel="Both"/>
<file name="MyComNetWrapper.tlb">
<typelib
tlbid="{D189D056-66F1-4C01-8EB9-1F95BA11254A}"
version="1.0"
helpdir=""
flags="hasdiskimage"/>
</file>
</assembly>
