8 から Windows 8.1 に切り替えた後、C# アプリケーションの実行にほとんど問題はありません。問題は、タイトルからこの例外が発生し、オンラインでのヘルプがあまりないことです。問題を特定しようとしましたが、x64 アプリケーションが x86 CSharp ライブラリを呼び出そうとしているようです。プロジェクト内の参照は、/headers パラメーターを使用して x64 dumpbin プログラムを呼び出すと、DLL ファイルにつながります。
Dump of file Microsoft.CSharp.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
14C machine (x86)
3 number of sections
4FFA5C64 time date stamp Mon Jul 09 06:21:56 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
2022 characteristics
Executable
Application can handle large (>2GB) addresses
DLL
マシンが x86 であるのに対し、アプリケーションは x64 で実行されていることに注意してください (Environment.Is64BitProcess で確認)。これは私が直面している問題かもしれませんが、解決する方法が見つかりません。x64 .Net ライブラリがインストールされていないようです。私が見つけたのは次の場所だけですC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
。または、私は完全にオフになっていて、他の問題があるのかもしれません。とにかく、コンストラクターの1つで起動時に例外が発生し、完全な詳細は次のとおりです。
Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
"Could not load file or assembly 'Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The module was expected to contain an assembly manifest."
編集:
まだパニックに陥っている間に、 CSharp.dllをダウンロードし、回答に示されているパスのダミーの0バイトファイルを置き換えることでこれを解決しました。