名称空间的类型';日志记录';命名空间中不存在';Sitecore&x27;
在项目中添加了Sitecore.Logging dll(来自nuget),但我仍然收到错误 在我添加一个log4netdll(作为其他nuget依赖项的一部分)之前,它一直工作得很好。在此之后,出现了一个不明确的引用错误。然后,当我试图指定Sitecore.Logging.LogManager/Sitecore.Logging.ILog时,我得到了错误名称空间的类型';日志记录';命名空间中不存在';Sitecore&x27;,sitecore,Sitecore,在项目中添加了Sitecore.Logging dll(来自nuget),但我仍然收到错误 在我添加一个log4netdll(作为其他nuget依赖项的一部分)之前,它一直工作得很好。在此之后,出现了一个不明确的引用错误。然后,当我试图指定Sitecore.Logging.LogManager/Sitecore.Logging.ILog时,我得到了错误 命名空间“Sitecore”中不存在命名空间“Logging”的类型Sitecore.Logging.dll在Sitecore.Logging命
命名空间“Sitecore”中不存在命名空间“Logging”的类型
Sitecore.Logging.dll
在Sitecore.Logging
命名空间中不包含类,尽管您可能会预料到这种情况-这当然是惯例
用反编译器打开它,会发现隐藏在其中的log4net的分叉版本
您可能正在
Sitecore.Kernel.dll中的Sitecore.Diagnostics.log
中查找日志工厂,右键单击新添加的log4net dll->properties->alias->指定一个不同的名称,如“log”。这将解决代码中的歧义。Sitecore版本?8.2.3版本它是LogManager,根据编译时错误消息,ILog是歧义的。必须删除新添加的log4net才能工作。log4net和Sitecore.Logging不能同时存在,对吗?还有,哪个dll包含Sitecore.Logging中的名称空间?Sitecore.Logging.dll
包含所有log4net功能。无需添加单独的log4net.dll
。此外,名称空间Sitecore中没有类。当然,日志记录也没有必要。我也不想补充。但一个nugetpackage正在带来它。它就在那里。现在,如何处理它,是摆在我面前的一个问题。从你的nuGet包文件中删除它champAh好的,是的,log4net可能是通过依赖关系进来的-我没有想到这一点。在这种情况下@BlueClouds是完全正确的,您可以在解决方案资源管理器中的程序集引用上设置别名,它通常是global
,但可以是任何名称,因此使用上面的示例,您最终会得到不同的全局限定名global::log4net.LogManager
(即Sitecore.Logging.dll
one)和log::log4net.LogManager
(即log4net.dll
one)