为什么UWP类库项目引用被复制到主项目?

时间:2016-01-04 16:19:15

标签: .net visual-studio-2015 nuget uwp windows-10-universal

我遇到了一个与通用Windows平台相关的问题让我感到疯狂。

假设我的解决方案中有两个项目 - 第一个是通用Windows应用程序( TestApp ),第二个是通用Windows类库( TestClassLibrary )。 TestApp 引用了 TestClassLibrary TestClassLibrary 是指 Newtonsoft.Json NuGet包(它可以是任何其他包)。

enter image description here

现在奇怪的部分。 TestClassLibrary 中的任何引用都会公开到 TestApp 。我可以在 TestApp 类中使用任何特定于NewtonsoftJson的命名空间,尽管事实上 TestApp.csproj project.json 都没有对Newtonsoft.Json的单一引用。这违反了 TestClassLibrary 封装,因此其实施细节(即引用的库)变为公开,我不希望这样。

问题是 - 这是UWP类库的一个特性,我可以在哪里阅读它?或者这是一个NuGet错误?

1 个答案:

答案 0 :(得分:1)

  

TestClassLibrary中的任何引用都会公开给TestApp。我可以在TestApp类中使用任何特定于NewtonsoftJson的命名空间。

我可以通过以下步骤重现此问题:

  1. 按照示例创建两个项目,确保在“选项”窗口中选中以下选项。 enter image description here
  2. Intellisense对TestApp项目中的Newtonsoft.Json不起作用。但是,TestApp构建成功。

    enter image description here

  3. 重新打开解决方案,智能感知和构建工作。

    enter image description here

  4. 这应该是NuGet的问题,我在Nuget GitHub问题页面(https://github.com/NuGet/Home/issues/1629)上发现了类似的未解决问题。