多くの dll を参照する単一の exe で構成される C# アプリケーションがあり、すべて .NET 2 でビルドされています。すべてが以前と同じように機能することを確認してください。
そこで、exe だけを .NET 4 (フル プロファイル) で再構築し、古い exe をそれに置き換えて、アプリケーションを再起動しました。次のエラーが表示されます。
"Failure loading the types from the assembly 'blorg.dll'"
(ここで、「blorg」は、exe によって参照される古い .NET 2 アセンブリの 1 つであるアセンブリの実際の名前のネットセーフ エイリアスです。)
内部例外は次のとおりです。
"Could not load file or assembly file 'file:///C:\\(...)blorg or one of its depedencies. The system cannot find the file specified.":"file:///C:\\(...)blorg"
FusionLog は次のように述べています。
=== Pre-bind state information ===
LOG: User = NT AUTHORITY/SYSTEM
LOG: Where-ref bind. Location= C:\(...)\blorg
LOG: Appbase = file:///C:/(...)/
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\(...)\blorg.exe.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/(...)/blorg
問題のdllは、exeと同じフォルダーにあります。.NET 2 用の VS2005 で exe をビルドすると、全体が正常に動作します。唯一の変更は、実行可能ファイルのソリューション (実行可能ファイルには独自のソリューションがあります) を VS2010 に変換し、ターゲットを .NET 4 に変更することでした。 、それを再構築して、フォルダーにコピーして貼り付けます。ああ、それはデバッグ中ですが、残りはリリース中です。しばらくオンラインで検索しましたが、問題の診断に役立つものは見つかりませんでした。何かご意見は?