0
実行時にdllを複数回ロードしてアンロードするWindowsアプリケーションがあります。同じバージョンのDLLを使用しているときにうまく動作します。実行時に同じバージョンの異なるdllをロードしようとすると問題が発生します。例えば、私はdll "version1"をロードしてアンロードしてから、別のバージョンの "version2"と同じdllをロードしようとしましたが、ロードできないようにしました。appdomainを使用して同じバージョンの同じdllをロード/アンロードする
ロード/アンロードのためのコードの下に見つけてください:
ロードコード:
if (this.libraryDomain != null)
{
AppDomain.Unload(this.libraryDomain);
}
// Re-create the AppDomain and create an instance of the Preview Bridge Module
this.libraryDomain = System.AppDomain.CreateDomain("PreviewLibraryDomain");
PreviewLibraryLoader previewLibraryLoader = this._previewLibraryDomain.CreateInstanceAndUnwrap(
"Preview.Library.Interface", "Preview.Library.Interface.PreviewLibraryLoader") as PreviewLibLoader;
this._bridgeModule = previewLibraryLoader.LoadPreviewLibrary(assemblyPath);
アンコード:
if (this.libraryDomain != null)
{
AppDomain.Unload(this.libraryDomain);
this.libraryDomain = null;
}