0

我有(源代码)一个混合模式(.NET 2.0)DLL 程序集,它是一个 TAPI 电话服务提供商。因此它由 Windows 电话服务 (svchost) 加载。当(预)安装了 .NET 2.0 或 3.5 时,这在 Windows XP、Vista 和 Windows 7 中可以正常工作。

现在我的目标是预装了 .NET 4 的 Windows 8。我面临的问题是 Windows 不会使用该配置加载 DLL(和 TSP)。当我安装 .NET 3.5 时,一切正常,但我不想强迫用户在已经存在的 .NET 4 之外安装 .NET 3.5。

我已经阅读 了在 .NET 4.0 项目中引用 .NET 2.0 混合模式程序集需要哪些“附加配置”? 但这不适用,因为我没有应用程序,因此没有 app.config 文件。

根据http://reedcopsey.com/2011/09/15/setting-uselegacyv2runtimeactivationpolicy-at-runtime/useLegacyV2RuntimeActivationPolicy在加载混合模式程序集之前设置似乎是一种有趣的方法。但我想这在我的情况下不起作用,因为程序集是由电话服务加载的。

或者这在混合模式组件中是否可行?程序集始终由来自 Windows 服务的非托管调用调用。在创建第一个之前,是否可以在这样的调用中在非托管代码部分中设置策略,gcroot或者这已经太晚了?如果可能,我将如何获取并调用所需的 COM 对象来做到这一点?

4

0 回答 0