对于我当前的项目,我们正在使用一些基于 CLR 2 的混合模式程序集。
为了在 .NET 4 目标程序集中使用这些,我知道您必须添加useLegacyV2RuntimeActivationPolicy=true
到<startup>
app.config 中的元素。
我了解这会更改激活策略,导致使用受支持的最高 CLR 版本加载这些混合模式程序集。
但是,这样做有什么副作用吗?启用非默认激活策略时应注意哪些潜在问题?
对于我当前的项目,我们正在使用一些基于 CLR 2 的混合模式程序集。
为了在 .NET 4 目标程序集中使用这些,我知道您必须添加useLegacyV2RuntimeActivationPolicy=true
到<startup>
app.config 中的元素。
我了解这会更改激活策略,导致使用受支持的最高 CLR 版本加载这些混合模式程序集。
但是,这样做有什么副作用吗?启用非默认激活策略时应注意哪些潜在问题?
汉斯·帕桑特是部分正确的。我试图在这个博客条目中解释这个神秘的属性:http: //www.marklio.com/marklio/PermaLink,guid,ecc34c3c-be44-4422-86b7-900900e451f9.aspx
后果本质上是您使用 v4 之前的运行时锁定了进程内 SxS。这在迁移方案中通常是可以接受的。
好吧,当然,您将使用从未经过测试的 CLR 版本运行该应用程序。微软在保持向后兼容方面做得很好。但是,微软经理在 .NET 升级后几天失去电子邮件访问权限的案例非常有名。线程池时间略有不同,在实习生编写的程序中暴露了线程竞争。现在不能google链接。