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