【问题标题】:TypeInitializationException in PostSharpPostSharp 中的 TypeInitializationException
【发布时间】:2014-12-09 12:38:53
【问题描述】:

我已将 PostSharp (4.0.37) 和 PostSharp.Patterns.Model 添加到我的项目中。然后它编译并运行良好。

然后,我将 [NotifyPropertyChanged] 添加到我非常简单的按比例缩小的示例类(仅包含一个 int32 自动属性)。项目仍然可以编译,但在启动时会抛出 TypeInitializationException:

“System.TypeInitializationException”类型的未处理异常 发生在 Microsoft.VisualStudio.HostingProcess.Utilities.dll

附加信息:“”的类型初始化器抛出了一个 例外。

VS 2012.4,Win7(x64),已经尝试过 .net 4、4.5、4.51 和 3.5,同样的事情发生了。有什么想法吗?

【问题讨论】:

  • 有一个static构造函数失败,我们需要查看一些代码来确定。
  • TypeInitializationException 中应该有一个InnerException,它将解释发生了什么。
  • 对不起,Jon,没有可用的内部异常或异常查看器。唯一可用的操作是“将异常详细信息复制到剪贴板”(已在上面处理)或“打开异常设置”...
  • 那么你是如何运行代码的,它是什么类型的项目?如果你在调试器下运行它,当你在调试器中运行它not会发生什么?

标签: c# visual-studio-2012 postsharp


【解决方案1】:

我想我发现:出于某种原因,NuGet 首先安装了对我不起作用的 PostSharp (4.1.4.0) 的 alpha 版本(编译错误)。当我发现版本问题时,我将其卸载并非常小心地安装了稳定版本。但是,我才意识到 app.config 文件中还有一个设置:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="PostSharp" publicKeyToken="b13fd38b8f9c99d7" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

我删除了整个部分,我的测试应用程序和我的小类现在运行了!

【讨论】:

  • 我们最近发现这种情况正在发生,我们正在从 VSIX 安装不稳定版本。 VSIX 修补程序应该很快就会出现在 VS Gallery 上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多