.NET 用の新しい Spring CodeConfig を試していますが、問題がたくさんあります。
NuGet パッケージSpring.CodeConfigを既存の .NET 4 プロジェクトにインストールしましたが、問題はありませんでした。
次のコードを実行すると、ScanAllAssemblies メソッドが ReflectionTypeLoadException をスローします。
var context = new CodeConfigApplicationContext();
context.ScanAllAssemblies();
context.Refresh();
これは、構成クラスを定義していない場合でも発生しますが、構成クラスを作成した場合にも発生します。
LoaderExceptions プロパティには、次のメッセージを含む 1 つの例外が含まれています。
ファイルまたはアセンブリ 'System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' またはその依存関係の 1 つを読み込めませんでした。無効なポインター (HRESULT からの例外: 0x80004003 (E_POINTER))
System のバージョン 1.0.3300.0 から、私のプロジェクトで参照されているバージョン 4.0.0.0 へのアセンブリ リダイレクトを追加しようとしましたが、うまくいきません。
この問題を解決するにはどうすればよいですか?
リクエストに応じて、問題のプロジェクトからの参照を以下に示します。
- mscorlib、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- Ploeh.Samples.MenuModel、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null
- Spring.Aop、バージョン = 1.3.1.40711、カルチャ = ニュートラル、PublicKeyToken = 65e474d141e25e07
- Spring.Core、バージョン = 1.3.1.20711、文化 = ニュートラル、PublicKeyToken = 65e474d141e25e07
- Spring.Core、バージョン = 1.3.1.40711、カルチャ = ニュートラル、PublicKeyToken = 65e474d141e25e07
- Spring.Core.Configuration、バージョン = 1.0.0.4111、カルチャ = ニュートラル、PublicKeyToken = 65e474d141e25e07
- システム、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- System.Core、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- System.Xml、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- System.Xml.Linq、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- xunit、バージョン = 1.7.0.1540、カルチャ = ニュートラル、PublicKeyToken = 8d05b1bb7a6fdb6c
2 番目の参照はプロジェクト参照であるため、その依存関係もリストしています。
- mscorlib、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
- System.Core、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
また、App.config にこれらのバインド リダイレクトがあります - 重要な場合に備えて:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Spring.Core" publicKeyToken="65e474d141e25e07" culture="neutral" />
<bindingRedirect oldVersion="1.3.1.20711" newVersion="1.3.1.40711" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="1.0.3300.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
ただし、どちらも CodeConfig の問題を修正するための試みでした。それらを削除しても役に立ちません...