【发布时间】:2018-08-18 16:44:43
【问题描述】:
我正在开发一个 Windows C# .NET 4.5 程序,该程序利用多个 NuGet 项目来减少我需要编写的代码量(为什么要重新发明轮子?)。无论出于何种原因,这些 NuGet 项目之一具有覆盖我程序中其他地方使用的MSCORLIB 方法之一的依赖项。
ReSharper 警告我不明确的引用(而且我显然无法编译),而且我终其一生都无法弄清楚如何在此 NuGet 项目依赖项上指定使用 MSCORLIB 的方法。我花了几个小时在谷歌上搜索和阅读不同的东西,但找不到解决方案。
我的程序中存在歧义引用错误的部分不以任何方式依赖 NuGet 包的依赖,所以如果我可以实现 MSCORLIB' s 方法在这个地方我会很成功。
这甚至可能吗?我尝试使用 ReSharper 的“使用此程序集...”将对 MSCORLIB 的引用显式添加到项目中,但选择其中任何一个都不起作用,以及 Visual Studio 中的“引用”选项卡。
【问题讨论】:
-
另外,如果我能找到一种解决方法并且它破坏了这个 NuGet 包,我显然必须找到一个全新的解决方案。
-
您是否尝试过在文件顶部使用:
using NugetRef = NugetPackage.Namespace;为 nuget 包引用设置别名以消除调用歧义? -
在这种情况下会起作用吗,因为它们引用了相同的命名空间?看到这张图片:i.imgur.com/rNHtmOg.png
-
在那种情况下可能不是...您可以将其中一个动态加载到新的 AppDomain 中并删除静态引用。
-
我没有这方面的经验(编辑:您所指的动态加载就是我所指的)。你有什么材料可以让我阅读一下,看看这是否是一个潜在的解决方案?
标签: c# .net dependencies .net-assembly