如何免费注册vb.NET DLL以兼容VB6的COM组件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计596个文字,预计阅读时间需要3分钟。
我正在努力让最简单的免注解COM项目在64位Windows7中运行!COM组件也是最简单的vb.NET DLL,它在注册时可以从VB6 EXE中正常工作。任何人都可能质疑这种简洁的应用为何如此难以实现。我已经尝试使用mt.
我正在努力让最简单的免注册COM项目在64位 Windows7中运行!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>
本文共计596个文字,预计阅读时间需要3分钟。
我正在努力让最简单的免注解COM项目在64位Windows7中运行!COM组件也是最简单的vb.NET DLL,它在注册时可以从VB6 EXE中正常工作。任何人都可能质疑这种简洁的应用为何如此难以实现。我已经尝试使用mt.
我正在努力让最简单的免注册COM项目在64位 Windows7中运行!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>

