2010-12-27 9 views
1
Application.Run(new Main()); 

この行は、3.5から4のフレームワークに切り替えた後、TypeInitializationExceptionが処理されなかったことを示しています。.NET 3.5から4への切り替え後のエラー

これはなぜですか?

編集:これはWinforms C#アプリケーションです。

私はSQLite .NETを参照しています。私はデフォルトで.NET 4で作成されたプロジェクトでこれを試してみましたが、SQLite .NETに関するものではないと仮定してエラーが発生しませんでした。 http://sqlite.phxsoftware.com/

v2.0.50727これはv2.0.50727です。問題の原因と思われるDLL

  • スローされます: "A assemblagemデmodoのミストFOI criada COMベースNAversão 'v2.0.50727の' デexecução電子NAOé何のテンポドがexecuçãoないpossívelcarregáラ4.0 SEMinformaçõesデconfiguraçãoadicionaisテンポん。" (System.IO.FileLoadException)Exception Message = "この問題を解決するには、v2.0.50727を実行する必要がありますが、これは実行時に実行されますが、実行時には実行されません。4.0情報を設定してください。 、例外タイプ= "System.IO.FileLoadException"

彼は/ extra設定でv4でDLLを実行できないようです。

+2

メインではどうなりますか? –

+0

例外の詳細? – fejesjoco

+0

.NET Framework 4クライアントプロファイルではなく、.NET Framework 4を対象としていることを確認します。 –

答えて

5

Mainクラスの静的コンストラクターが失敗した理由を調べるには、InnerExceptionを調べます。これは、通常、例外をスローする静的変数初期化子によって発生します。

更新:ポルトガル語はかなり錆びていますが、C++/CLIで作成され、.NET 2.0バージョンのCLRをターゲットにしているアセンブリを使用しているようです。 SqlLiteはその説明に適合します。そのアセンブリの更新を取得する以外に、CLRの.NET 4.0バージョンでアセンブリを読み込んでもよいことをCLRに伝える必要があります。 [プロジェクト+新しい項目の追加]で、[アプリケーション構成ファイル]を選択します。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 
+0

更新された質問をご覧ください。 – Qosmo

+0

内部の例外で見つかったものは文書化されませんでした。完全に野生の推測は、Project + Properties、Buildタブ、Platform target = x86です。 –

+0

最初から.NET v4のプロジェクトにDLLを含めると、どのように動作するか説明しますか? – Qosmo

関連する問題