.net 安装后的System.Security.VerificationException VS 2012

.net 安装后的System.Security.VerificationException VS 2012,.net,.net,我在工作中使用VS2010,作为向前发展的测试,我安装了VS2012 在此步骤之后,所有之前正确的项目都将停止工作(已编译,或仍由VS2010生成) 十几个地方出现了一个例外:System.Security.VerificationException。 此异常也来自.NET3.5或.NET4上的库。 它在XAMLs InitializeComponents等中引发异常 这是什么? 为什么安装新框架会破坏所有现有项目 如何在不删除VS2012和.NET 4.5的情况下解决此问题 谢谢你的建议。我得

我在工作中使用VS2010,作为向前发展的测试,我安装了VS2012

在此步骤之后,所有之前正确的项目都将停止工作(已编译,或仍由VS2010生成)

十几个地方出现了一个例外:System.Security.VerificationException。 此异常也来自.NET3.5或.NET4上的库。 它在XAMLs InitializeComponents等中引发异常

这是什么? 为什么安装新框架会破坏所有现有项目

如何在不删除VS2012和.NET 4.5的情况下解决此问题


谢谢你的建议。

我得到了同样的例外,并将其缩小到使用FluentValidation的单元测试。事实证明,我的测试项目构建为x86,需要x64


要解决此问题,请右键单击项目并选择“属性”。在左窗格中选择“构建”并将“平台目标:”设置为“任何CPU”

是否使用对FluentValidation.dll的引用?如果是的话,看看我昨天写的这篇文章。这可能会有所帮助。问题的根源(仅影响32位)是,如果构造函数在调用base/This构造函数之前有任何程序流(在IL级别),那么代码将无法正确地通过验证。WPF中使用的一些相对常见的类型在其对base/this的调用的参数中具有
?:
操作,因此不能使用这些特定的构造函数。我只看到它在懒惰和可观察的收集上失败。这两种类型都有一些不包含流的构造函数,因此解决方法是更改构造函数调用以使用无参数版本。另一个场景(FluentValidation中显示的场景)是,当构造函数中有lambda时,C#编译器插入流。解决方法是使用lambda的实际方法


如果我的解释不清楚,我们(CLR团队)已经意识到这个问题,并正在积极研究解决方案。

你能发布异常上下文吗?我也遇到了同样的问题。我已经瞄准了所有CPU。然而,我也在x64平台上运行,所以我的代码被JIT到64位。FluentValidation是否只支持x86?是的。。。它只修复了几个项目。主要问题是,我们有很多第三方项目是原生的,或者已经为x86构建。是否已经创建了修复程序?修复程序将于明天到达(2013年1月8日:新年快乐补丁星期二!)。