2012-11-20 42 views
4

我想要獲得最簡單的註冊免費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> 
+0

雞與雞的問題。 EXE從清單中找到DLL。因此,DLL清單中的條目應屬於EXE清單。 –

+0

我不確定這是什麼問題。將庫信息嵌入到應用程序清單中是一種捷徑,我不確定微軟甚至在任何地方記錄了這些信息。單獨的程序集清單是更「正常」的情況。即使是古代(〜2004年)的MMM實用程序版本也可用於創建單獨的裝配清單,並且它們正常工作。 – Bob77

+0

您是否缺少程序集清單中的''指令? – Bob77

回答

2

清單是正確的,假設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> 
+0

編輯鏈接到迷宮軟件產品,聽起來很有用。 – MarkJ

+0

有趣的答案,將進一步看這個。雖然示例中使用的.NET interop可能會混淆OP,因爲他的問題(我不認爲)與.NET程序集有任何關係。 – tcarvin

+0

@tcarvin再次閱讀OP的問題,然後:-) – Dabblernl