.NET 3.5のWinFormsアプリケーションで参照されている.NET 3.5アセンブリライブラリで参照される登録無料のVB6 DLLがあります(関連性がない、絵を描くために含まれています)。Reg Free COMリファレンス - 欠損値 '(デフォルト)'
私は「COMの参照を分離する問題 『のエラーを取得していますSomeVBDll』:Registry key 'HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID\{dd1d7f58-1d6b-4370-a1b9-05c03816a128}\InProcServer32' is missing value '(Default)'
私の最初の試みは、この値が実際に存在し、その後、所定の位置に置くかどうかを確認することでした。これによりコンパイル時に上記のメッセージが表示されました。
誰でもこの問題が発生しましたか、それに対する解決策がありますか?
ありがとうございます。以下は、VB6 dllを直接参照するアセンブリのマニフェストです。多目的で問題が解決しているようだとして、VB6 DLL内のすべてのクラスをマーキング
<assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity name="Native.App.Core" version="1.0.0.0" type="win32" />
<file name="SomeVBDll.dll" asmv2:size="184320">
<hash xmlns="urn:schemas-microsoft-com:asm.v2">
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>BWWHQTqNGUupT8xznLoN3jn7S9Y=</dsig:DigestValue>
</hash>
<typelib tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
<comClass clsid="{dd1d7f58-1d6b-4370-a1b9-05c03816a128}" threadingModel="Apartment" tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" progid="SomeVBDll.MyClass" />
</file>
</assembly>
EDIT ///
。 これは私が経験していた問題を回避しながらも、私はregフリーのCOMを使用することができますが、誰もCOMクラスのインスタンスをMultiUseに設定する必要はありませんか?
このスレッド[http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.interop /2006-01/msg00097.html]は、プライベートとしてマーキングされたインスタンスを持つVB6 DLL内にいくつかのクラスが存在するという事実に関連している可能性があることを示しています。これは私の場合もそうです。私はMultiUse(非プライベート)クラスを1つ持ち、残りはプライベートです。私はむしろMultiUseとして他人をマークしないだろうが、実際には問題の周りに動作するかどうかを確認するためにそうするだろう.... –
Ok、MultiUseの事は一時的な修正と思われるので、実際の根本的な問題ではなかった。私は今、私の元の記事で述べたのと同じ問題を抱えています。 私はWindows Vista Ultimate x64上の非管理者として、Visual Studio 2008のプロジェクトを非管理者としてビルドしています。 –
COM DLLに定義されているすべての単一のクラスについて上記のエラーが報告されているようです。各クラスがMultiUseとしてマークされていることを確認しました。 –