という名前のアセンブリにシングルトン クラスがあるとしCommon
ます。この DLL はメイン アプリケーションで使用され、別のバージョンはプラグイン フォルダー内のプラグイン DLL で使用できます。
分布は次のようになります。
\App.exe
\Common.dll (v1)
\Plugins\Plugin.dll
\Plugins\Common.dll (v2)
したがって、両方App
でコーディングし、Plugin
そのシングルトン クラスを使用しています。追跡が困難なエラーに直面しているため、そのシングルトン クラスがすべてのプロパティの値を失い、新しいインスタンスのように動作し始めることがあります。スタック トレースから、これはプラグイン DLL によってアクセスされているときに常に発生します。
編集: App によってアクセスされているスタック トレースを見つけました。したがって、上記の段落の最後の行をキャンセルします。
App
と(異なる VS プロジェクト) の両方Plugin
がコンパイルされ、それぞれのCommon
DLL バージョンに追加された参照でリンクされます。
編集:メインの AppDomain でPlugin
使用してロードされます。Assembly.LoadFrom
編集: Common
Plugins フォルダーにある DLL v2 もPlugin
、すべての DLL がそのフォルダーから読み込まれるため、DLLと共に動的に読み込まれます。
foreach( string extensionFile in Directory.GetFiles( ExtensionsDirectory, "*.dll" ) )
誰が何が起こっているのか助けてくれますか?