简单的注册与VB6免费COM
问题描述:
我想要获得最简单的注册免费COM项目在64位Windows7中工作! COM组件也是最简单的VB.NET DLL,它在VB6 EXE注册时工作正常。简单的注册与VB6免费COM
任何人都可以提出为什么清单不工作吗?
我已经尝试用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,一旦您拥有清单权限,它为我节省了无数的头痛。我没有嵌入它们。我使用迷宫软件的Side-by-Side Manifest Maker这个,他们非常有帮助,非常值得投资。我粘贴了应用程序清单和其中一个DLL的清单给你一个工作示例。
文件名= 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>
文件名= 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>
鸡与鸡的问题。 EXE从清单中找到DLL。因此,DLL清单中的条目应属于EXE清单。 –
我不确定这是什么问题。将库信息嵌入到应用程序清单中是一种捷径,我不确定微软甚至在任何地方记录了这些信息。单独的程序集清单是更“正常”的情况。即使是古代(〜2004年)的MMM实用程序版本也可用于创建单独的装配清单,并且它们正常工作。 – Bob77
您是否缺少程序集清单中的''指令? – Bob77