0

Ninject の初期化は、VS2010 からアプリケーションを直接実行すると正常に動作しますが、アプリケーションをカスタム「プラグイン」環境にデプロイすると、アプリを実行するとこのエラーが発生し、Ninject を初期化しようとします。

初期化中にエラーが発生しました

指定されたパスの形式はサポートされていません。

エラー : 指定されたパスの形式はサポートされていません。タイプ: NotSupportedException 場所: System.String CanonicalizePath(System.String, Boolean) スタック トレース: System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str、Boolean needFullPath) System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess アクセス、AccessControlActions コントロール、String[] pathListOrig、Boolean checkForDuplicates、Boolean needFullPath、Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess アクセス) 、String[] pathList、Boolean checkForDuplicates、Boolean needFullPath) を System.IO.Path.GetFullPath(String path) で Ninject.Modules.ModuleLoader に配置します。0(文字列パターン) at System.Linq.Enumerable.d _14 2.MoveNext() at System.Linq.Lookup2.Create[TSource](IEnumerable 1 source, Func2 keySelector, Func 2 elementSelector, IEqualityComparer1 comparer) at System.Linq.GroupedEnumerable 3.GetEnumerator() at Ninject.Modules.ModuleLoader.LoadModules(IEnumerable1 pattern) at Ninject.KernelBase.Load(IEnumerable`1 filePatterns) Ninject.KernelBase..ctor (IComponentContainer コンポーネント、INinjectSettings 設定、INinjectModule[] モジュール) で Ninject.KernelBase..ctor(INinjectModule[] モジュール) で MyApp.Ioc.ResolveType.Initialize() で MyApp.Program.Run()

4

1 に答える 1

2

スタック トレースは少し異なりますが、これは、NInject が存在する可能性のある NInject 拡張機能を読み込もうとしたときに、拡張機能ディレクトリが存在しなかったために失敗したときに発生した問題と似ています。

ディレクトリが存在する場合、ディレクトリが空であってもコードは正常に機能すると思います。

デフォルトで拡張機能を読み込まないように、NInject 設定オブジェクトを変更することをお勧めします (暗黙的に構築されたデフォルトの NInject 設定を使用するのではなく、StandardKernel コンストラクターに渡す必要があります)。

例:

var settings = new NinjectSettings();
settings.LoadExtensions = false;
var kernel = new StandardKernel(settings);
kernel.load<YourCustomBindingModuleIfAny>();
于 2011-02-13T23:22:30.377 に答える