複数のモジュールを取り込み、それらのモジュールをメインプロジェクトに作成できるWebサイトを作成しています。ブートストラップとカスタムビューエンジンをプログラミングして、module.dllでビューを見つけることができるようにします。System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした 'System.Web.DataVisualization MEF MVC
テスト用のテストモジュールをコンパイルした後、何らかの理由でSystem.Web.DataVisualizationをロードできないという奇妙なエラーが発生しています。私はまた、モジュールdllのコントローラが正しくロードされることに気付いた、私はデバッグでそれを見ることができますが、このエラーはスレッドを殺し続け、エラーをスローします。
これはのDLL読み込み/作曲を担当Bootstrapper.csため、私が持っているコードです。
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.IO;
public class Bootstrapper
{
private static CompositionContainer CompositionContainer;
private static bool IsLoaded = false;
public static void Compose(List<string> pluginFolders)
{
if (IsLoaded) return;
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new DirectoryCatalog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin")));
foreach (var plugin in pluginFolders)
{
var directoryCatalog = new DirectoryCatalog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Modules", plugin));
catalog.Catalogs.Add(directoryCatalog);
}
CompositionContainer = new CompositionContainer(catalog);
CompositionContainer.ComposeParts();
IsLoaded = true;
}
public static T GetInstance<T>(string contractName = null)
{
var type = default(T);
if (CompositionContainer == null) return type;
if (!string.IsNullOrWhiteSpace(contractName))
type = CompositionContainer.GetExportedValue<T>(contractName);
else
type = CompositionContainer.GetExportedValue<T>();
return type;
}
}