実際の問題を説明する前に、不明な期間、VS2010 は CLR 例外で中断するように設定されていませんでした。アプリを使用してエラーを発見した最近まで、これに気付きませんでした。そのオプションがどのようにオフになったかは、私にとって謎です。これは、以下に関連する場合と関連しない場合があります。
CLR 例外がスローされたので、以下の詳細な例外により、VS2010 が次の場所で停止します。
using (UnitOfWork uow22 = new UnitOfWork())
{
bool useWebInt = uow22.Query<MCCommon.Web>().Where(o => o.Enabled == true).Select(o => o.OfflineEnabled).FirstOrDefault(); // <--- causes the exception
enabled = useWebInt;
}
DevExpress のすべてのユーザーは XPO UnitOfWork を認識し、それが DevEx dll に含まれていることを認識します。オブジェクト MCCommon.Web は、プロジェクトで適切に参照される dll に含まれています。MCCommon も MCCommon.Web も MyCourtsAdmin への参照を持っていません。
上記のコード セグメントによって生成されるエラーは次のとおりです。
System.IO.FileNotFoundException occurred
Message=Could not load file or assembly 'MyCourtsAdmin' or one of its dependencies. The system cannot find the file specified.
Source=mscorlib
FileName=MyCourtsAdmin
FusionLog==== Pre-bind state information ===
LOG: User = KATOOMBA\Administrator
LOG: DisplayName = MyCourtsAdmin
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: MyCourtsAdmin | Domain ID: 1
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : DevExpress.Data.v11.2, Version=11.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Administrator\Documents\My Projects\MyCourts\bin\Debug\MyCourts.vshost.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/MyCourtsAdmin.DLL.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/MyCourtsAdmin/MyCourtsAdmin.DLL.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/bin/DLLs/MyCourtsAdmin.DLL.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/bin/DLLs/MyCourtsAdmin/MyCourtsAdmin.DLL.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/MyCourtsAdmin.EXE.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/MyCourtsAdmin/MyCourtsAdmin.EXE.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/bin/DLLs/MyCourtsAdmin.EXE.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/My Projects/MyCourts/bin/Debug/bin/DLLs/MyCourtsAdmin/MyCourtsAdmin.EXE.
StackTrace:
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.LoadWithPartialNameInternal(AssemblyName an, Evidence securityEvidence, StackCrawlMark& stackMark)
InnerException:
現在、MyCourtsAdmin (エラーで参照されている) は完全に別のプロジェクトであり、私のプロジェクトでも MCCommon dll でも参照されていません。MyCourtsAdmin は MCCommon を参照していますが、双方向の参照はありません。
プロジェクトのディレクトリ構造全体で文字列「MyCourtsAdmin」を検索しましたが、見つけることができる唯一の参照は myproject.suo にあります。もちろん、myproject.suo を編集することはできませんし、そうしなければならないとは思いません。
私は困惑しており、この問題を解決するためのあらゆる/すべての情報をいただければ幸いです。