如何避免对internalsvisibleto的两个项目中包含的nuget源代码包的不明确引用



假设您有两个项目:

  • 主.csproj
  • Main.Test.csproj

并且Main有一个属性

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

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

问题是,现在有两个Main.Test项目可见的源代码副本,因此编译器会抛出一个不明确的引用错误。

在不修改包放入每个项目的源代码的情况下,有什么方法可以避免这种情况吗?

附言:请不要使用诸如"不要使用InternalsVisibleTo,因为…"之类的参数。我可以在其他地方读到这些观点。

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