我正在尝试将我们的一个应用程序从 Castle Windsor 2.1 升级到 2.5。
我删除了所有 Castle DLL,并添加了从 Castle 网站下载的 2.5 版本:
Castle.Core.dll Castle.Windsor.dll
在进行迁移之前,我还参考了我的项目:
Castle.Components.DictionaryAdapter.dll
但是,根据 Krzysztof Koźmic 在此处的帖子,不再需要此类引用,因为 DictionaryAdapter 现在捆绑到 Castle.Core.dll 中。
删除它后,我到处都收到错误消息:
错误 6 找不到类型或命名空间名称“DictionaryComponent”(您是否缺少 using 指令或程序集引用?)
和
错误 64 找不到类型或命名空间名称“DictionaryKey”(是否缺少 using 指令或程序集引用?)
和
错误 27 找不到类型或命名空间名称“DictionaryKeyAttribute”(是否缺少 using 指令或程序集引用?)
然后我想我应该添加对 Castle.Components.DictionaryAdapter.dll 的引用,因为可能是 CORE 没有在其中实现上面列出的类型。
这样做消除了所有错误,但给了我一个新错误:
错误 8 'd:.NET\app\libs\Castle.Core.dll' 和 'd:.Net\app\libs\Castle.Components.DictionaryAdapter.dll 中都存在“Castle.Components.DictionaryAdapter.DictionaryAdapterFactory”类型'
错误发生在以下方法实现上:
internal static ISettingService GetServiceFromAdapterFactory(NameValueCollection collection)
{
var adapter = new DictionaryAdapterFactory();
return adapter.GetAdapter<ISettingService>(collection);
}
有没有人在从 2.1 升级到 2.5 时遇到过这样的问题,可以给我一些建议吗?
提前致谢。