1

我有一个引用并使用 Microsoft.MSHTML 主互操作程序集的 .NET 3.5 WPF 应用程序。在我的开发机器上,应用程序的热启动时间非常快,通常 < 1 秒。但是,在生产机器上大约需要 10 秒(完全不可接受)。

我做了一些研究,发现它们实际上是浮动的两个版本的 MSHTML PIA,一个是完全签名的,一个是未完全签名的或类似的。我在我的开发机器上从 GAC 中检索了完全签名的文件以放在生产机器上,而不是我一直在做的事情是把它放在C:\Program Files\Microsoft.NET\Primary Interop Assemblies生产机器上。起初,这解决了问题,显然这是一些安全问题,“未完全签名”的 PIA 必须“验证”或类似的一些诸如此类的废话。

然而,现在看来,即使这也不起作用,应用程序仍然需要大约 10 秒的时间来加载(热),几乎所有这些都是由于 MSHTML 参考。

我可以完全控制它将运行的所有生产机器的应用程序和配置(系统映像),因此我可以更改我需要的任何东西以使其正常工作(顺便说一句,所有东西都在运行带有 IE 9 的 Windows 7)。

显然可以生成您自己的 mshtml 互操作包装器,但我不确定如何执行此操作,或者它是否会有所帮助。

4

1 回答 1

0

解决方案是简单地将以下几行添加到我的 app.config 文件中:

<runtime>
    <generatePublisherEvidence enabled="false"/>
</runtime>
于 2013-07-23T13:16:40.320 回答