vb.NET DLL注册免费COM与VB6

vb.NET DLL注册免费COM与VB6,vb6,com-interop,Vb6,Com Interop,我正在尝试让最简单的免注册COM项目在64位Windows7中工作! COM组件也是最简单的vb.NET DLL,在VB6 EXE注册时可以正常工作 有人能告诉我为什么舱单不起作用吗 我已尝试使用mt.exe更新任何VB6内部清单,但一般错误表明Project2.exe中没有内部清单 VB6程序(Project2.exe)清单是 而DLL(ClassLibrary1.DLL)清单是。。。。。 假设ID正确,则清单是正确的。所以你的问题是别的。您收到了什么错误消息 我成功地使用了RegF

我正在尝试让最简单的免注册COM项目在64位Windows7中工作! COM组件也是最简单的vb.NET DLL,在VB6 EXE注册时可以正常工作

有人能告诉我为什么舱单不起作用吗

我已尝试使用mt.exe更新任何VB6内部清单,但一般错误表明Project2.exe中没有内部清单

VB6程序(Project2.exe)清单是


而DLL(ClassLibrary1.DLL)清单是。。。。。


假设ID正确,则清单是正确的。所以你的问题是别的。您收到了什么错误消息

我成功地使用了RegFree Com,一旦你掌握了正确的清单,它就帮我省去了无数的麻烦。我不嵌入它们。我使用来自迷宫的软件来做这个,它们非常有用,非常值得投资。我粘贴了应用程序清单和其中一个dll的清单,以提供一个工作示例

Filename=MyVB6App.exe.Manifest(注意.exe.tag)


内置:并排清单生成器(3.7.1.4434)(x86)
Filename=MyNetComWrapper.Manifest(请注意.dll.tag的缩写)


内置:并排清单生成器(3.7.1.4434)(x86)

鸡和蛋的问题。EXE从清单中查找DLL。因此,DLL清单中的条目应该属于EXE清单。我不确定这是问题所在。在应用程序清单中嵌入库信息是一种快捷方式,我不确定Microsoft是否在任何地方都有文档记录。单独的程序集清单是更“正常”的情况。即使是古老的(~2004)版本的MMM实用程序也用于创建单独的程序集清单,它们工作正常。您是否缺少程序集清单中的
指令?我尝试了鸡和蛋的建议,尽管在我看到的所有文档中都不是这样,但清单被拒绝并不奇怪。指令在清单中,我没有错误地粘贴代码……在迷宫软件产品的链接中编辑,这听起来很有用。有趣的答案,将进一步研究。虽然示例中使用的.NET互操作可能会混淆OP,因为他的问题(我不认为)与.NET程序集有关。@tcarvin再次阅读了OP的问题:-)是的,现在我已经喝了一些咖啡,我明白了。好的,这个答案解决了。。。
<?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>
<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>