我正在尝试将其中一个应用程序从Castle Windsor 2.1升级到2.5。
我删除了所有Castle DLL,并添加了从Castle网站下载的2.5版本:
Castle.Core.dll Castle.Windsor.dll
在进行迁移之前,我还有一个关于我的项目的参考:
Castle.Components.DictionaryAdapter.dll
然而,根据KrzysztofKoźmic的帖子here,不再需要这样的引用,因为DictionaryAdapter现在捆绑在Castle.Core.dll中。
删除它后,我在整个地方都会收到错误:
错误6类型或命名空间名称“DictionaryComponent”不可能 发现(你错过了使用指令或程序集 引用?)
和
错误64找不到类型或命名空间名称“DictionaryKey” (您是否缺少using指令或程序集引用?)
和
错误27类型或命名空间名称“DictionaryKeyAttribute”不能 找到(你错过了使用指令或汇编引用吗?)
然后我想我会添加对Castle.Components.DictionaryAdapter.dll的引用,因为CORE可能没有在其中实现上面列出的类型。
做到这一点摆脱了所有的错误,但给了我一个新的:
错误8'd:.NET \ app \ libs \ Castle.Core.dll'和'd:.Net \ app \ libs \ Castle.Components中存在'Castle.Components.DictionaryAdapter.DictionaryAdapterFactory'类型。 DictionaryAdapter.dll'
以下方法实现发生错误:
internal static ISettingService GetServiceFromAdapterFactory(NameValueCollection collection)
{
var adapter = new DictionaryAdapterFactory();
return adapter.GetAdapter<ISettingService>(collection);
}
从2.1升级到2.5时有没有人遇到过这样的问题,可以给我一些建议吗?
提前致谢。
答案 0 :(得分:1)
要在这里回答我自己的问题,这是我在代码中必须更改的内容。
显然删除了所有的2.1 DLL并添加了2.5。您会注意到DictionaryAdapter.dll已被删除,因为它现在捆绑在Castle.Core.dll中
希望将来帮助某人。