COM登録なしでDelphiアプリで使用されるC#COMサーバーを作成しようとしています。
プロセスはmsブログで説明されています-.NETベースのコンポーネントの登録なしのアクティベーション:ウォークスルー
必然的にマニフェストファイルを作成し、それらをアセンブリにリンクしました。
アプリマニフェスト:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Vorg"
version="1.0.0.0" />
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Vorg.WpfClient"
version="1.0.0.0" />
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
およびアセンブリマニフェスト:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="Vorg.WpfClient" version="1.0.0.0" />
<clrClass
clsid="{69A72676-8EA7-3C38-BFBC-F0DFE745C329}"
progid="Vorg.WpfClient"
threadingModel="Both"
name="KundM.Vorg.WpfClient.VorgComClient">
</clrClass>
</assembly>
それらはうまく機能しています(私は思います)。sxsはエラーを報告しません。clsidはcomクラスに対しても正しいです。ただし、アプリを起動すると、ole例外0x8013101bによってクラッシュします。
マニフェストを削除し、クラスnotfound例外でcurseのアプリ結果を実行します。com-classを登録すると、アプリはエラーなしで正常に起動します。
例外は、「間違ったフレームワークバージョン」のようなものかもしれません。
クラスマニフェストでランタイムを指定しようとしました。しかし、それは問題を解決しませんでした。
例外の原因は何ですか?
どうすればその問題を解決できますか?