4

当我尝试在 Visual Studio 2012 中调试我的应用程序时,我得到了一个TypeInitializationException错误,但我能够在 Visual Studio 2010 中运行该应用程序而不会出错。

我最近移动了一堆东西(包括我的项目和几个参考),以便将其放入版本控制系统中。我必须重新链接几个项目,以便在不同系统上签出时所有内容都能正确链接。

我们的开发环境是混合的(VS2010 & VS2012)。用完 VS2010 不会产生任何错误。但是当我在 VS2012 中运行调试时,我收到了TypeInitializationException异常。

原始目录中的项目(出于版本控制目的而移动之前所在的位置)在 VS2010 和 VS2012 中仍然可以正常运行。

有一个标志或一个参数或某处有点混乱,但我不确定在哪里。有没有人知道我可以做些什么来让它在 VS2012 中也能正常工作?

(请让我知道要在此处包含的代码或配置信息(如果有))

内部异常:

'System.Windows.Navigation.BaseUriHelper' 的类型初始化程序引发了异常。

(二)InnerException:

'MS.Internal.TraceDependencyProperty' 的类型初始化程序引发了异常。

4

1 回答 1

10

对原始问题的评论引发了进一步的搜索,最终产生了解决方案。

搜索“'System.Windows.Navigation.BaseUriHelper' 的类型初始化程序引发异常。” 我发现了以下 StackOverflow 问题:WPF Application failed on startup with TypeInitializationException

与那个问题类似,我在<startup> </startup>“app.config”文件中添加了一个块。放置此标签块的位置有所不同:

在 VS2012 中导致错误:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
    </startup>
    <configSections>
       ...
    </configSections>
    <applicationSettings>
       ...
    </applicationSettings>
</configuration>

一切正常:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
       ...
    </configSections>
    <applicationSettings>
       ...
    </applicationSettings>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
    </startup>
</configuration>

将标签块移动到底部就可以了!

于 2012-11-29T19:06:39.837 回答