问题描述
我使用.NET Core 3.1(在.NET Framework中是相同情况)进行以下(简化)设置
项目A(低级工具库)引用了NLog
包。工具包提供了围绕NLog
的自定义包装,并公开了我们的日志记录界面。
-
项目A被部署为nuget程序包。
-
项目B引用项目A。
问题:我目前可以使用NLog
;即使在项目B中未引用NLog
,也无法在项目B中的C#文件中使用。项目A的工具的目的是封装和隐藏NLog
,因此,理想情况下,项目B中不可能直接使用NLog
。
问题:是否可以以某种方式防止NLog
(或项目A依赖项中的所有公共类型)在项目B中可见?
注意:我想也许可以使用nuspec来做到这一点,但我找不到。
更新: 参考注释中的解决方案不起作用,因为当我们从Project A调用引用nuget NLog的方法时,会得到类型初始化异常。 System.IO.FileNotFoundException:无法加载文件或程序集'NLog,Version = 4.0.0.0
也许乔恩·斯凯特(Jon Skeet)的评论是正确的,对此没有解决方案吗?
我认为有可能以某种方式复制NLog.Dll(使其在“ Files”标签中可用,因此无需直接引用即可显示NLog.Dll,但需要进行测试,并且此解决方案不是很好即使可行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)