タイトルと同じくらい簡単です。ソリューションを .Net 2-3.5 から .Net 4 にアップグレードしました。問題なく動作し、VS 2012 をインストールして .Net 4.5 をインストールしました。次のコードを使用して動的に生成された DLL:
Assembly assembly = Assembly.LoadWithPartialName("DavesNamespace.Custom");
var attributes = assembly.GetCustomAttributes(typeof(ChecksumAttribute), true);
GetCustomAttributes に指定された Type の有無にかかわらず例外が発生しますが、その時点でのみ例外がスローされ、アセンブリが正常に読み込まれ、ブレーク ポイントを挿入すると CustomAttributes コレクションを実際に表示できます。
vs2012 をインストールして以来、元の .Net 2-3.5 バージョンは引き続き機能します。
オンラインで見ると、vs2012 に起因する ExecutionEngineExceptions で終わるいくつかの問題が見つかりましたが、答えはありません。この問題は VS2012 と .Net 4.5 を削除することで解決できますが、VS2013 がリリースされたときに会社全体で VS2013 に移行する予定であるため、これは実際の解決策ではありません。
編集:これを行うサンプルアプリでエラーが発生し、アプリケーションが4.5をターゲットにして構築されていても例外がスローされます
以下のコメントに追加されたスタック トレース (null です)