在我的代码中,我使用Activator.CreateInstance(SomeType)创建了一个COM服务器。此COM服务器使用针对.NET 2.0编译的混合模式SQLite DLL。我有这个COMServer.exe的配置文件,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
对于某些Windows 7计算机,COMServer.exe将在.NET 4.0下加载其所有程序集,这将起作用。对于其他Windows 7计算机,它在.NET 4.0下加载了混合模式程序集,在.NET 2.0下加载了托管程序集。这会导致COM服务器无法正常工作。任何人都知道为什么?为什么app.exe.config文件适用于某些计算机而不适用于同一组代码的其他计算机?