如何避免对包含在具有 internalsvisibleto 的两个项目中的 nuget 源代码包的模糊引用

How to avoid ambiguous references on nuget source code packages includeded in two projects with internalsvisibleto

假设您有两个项目:

而且 Main 有一个属性

[assembly:InternalsVisibleTo("Main.Test")]

现在我们要在两个项目中引用一个 NuGet 包,该包将其内容作为源代码发送,例如 MoreLinq (https://code.google.com/p/morelinq/)。

问题是 Main.Test 项目现在可以看到源代码的两个副本,因此编译器会产生一个不明确的引用错误。

有没有办法在不修改包放入每个项目的源代码的情况下避免这种情况?

P.S。请不要使用诸如“不要使用 InternalsVisibleTo 因为...”之类的参数。我可以在别处阅读这些要点。

morelinq 的扩展方法将是 public,因此如果您在 main.csproj 中有它们,则在 main.test.csproj 中不需要它们,但它们仍然可以在 main.test.csproj.