我正在尝试创建一个没有 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 而崩溃。
删除清单并在未找到异常的类中运行 curse 的应用程序结果。让 com 类注册应用程序正常启动,没有任何错误。
异常可能会说“错误的框架版本”。
我试图在类清单中指定运行时。但这并没有解决问题。
是什么导致异常?
我该如何解决这个问题?