4

TypeInitializationExceptionVisual Studio 2012でアプリケーションをデバッグしようとすると、が表示されますが、エラーなしでVisualStudio2010でアプリケーションを実行できます。

私は最近、バージョン管理システムに組み込むために、たくさんのもの(私のプロジェクトといくつかの参照を含む)を移動しました。別のシステムでチェックアウトしたときにすべてが正しくリンクされるように、いくつかのアイテムを再リンクする必要がありました。

私たちの開発環境は混合されています(VS2010とVS2012)。VS2010が不足しても、エラーは発生しませんでした。しかし、VS2012でデバッグを実行すると、TypeInitializationException例外が発生しました。

元のディレクトリ(バージョン管理の目的で移動する前に存在していた)のプロジェクトは、VS2010とVS2012の両方で引き続き正常に実行されます。

どこかに少しめちゃくちゃになった旗やパラメータなどがありますが、どこにあるのかわかりません。VS2012でもこれを機能させるために私ができることについて誰かが何かアイデアを持っていますか?

(ここに含めるコードまたは構成情報がある場合は、お知らせください)

InnerException:

'System.Windows.Navigation.BaseUriHelper'の型初期化子が例外をスローしました。

(2番目)InnerException:

'MS.Internal.TraceDependencyProperty'の型初期化子が例外をスローしました。

4

1 に答える 1

10

元の質問へのコメントはさらに検索を引き起こし、最終的に解決策をもたらしました。

「'System.Windows.Navigation.BaseUriHelper'の型初期化子が例外をスローしました。」を検索すると、次のStackOverflowの質問が見つかりました:TypeInitializationExceptionで起動時にWPFアプリケーションが失敗する

その質問と同様に<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 に答える