visual studio net manager mac create .net visual-studio-2015 nuget uwp windows-10-universal

.net - studio - ¿Por qué las referencias de proyecto de la biblioteca de clase UWP se están copiando al proyecto principal?



visual studio create nuget package on build (1)

Cualquier referencia dentro de TestClassLibrary se vuelve pública para TestApp. Puedo usar cualquier espacio de nombres específico de NewtonsoftJson en las clases de TestApp.

Puedo reproducir este problema por los pasos de la siguiente manera:

  1. Cree dos proyectos siguiendo su ejemplo, asegúrese de que las siguientes opciones estén marcadas en la ventana de Opciones.
  2. Intellisense no funciona para Newtonsoft.Json dentro del proyecto TestApp. Sin embargo, TestApp se compila correctamente.

  3. Vuelva a abrir la solución, tanto Intellisense como las obras de construcción.

Esto debería ser un problema de NuGet, encontré un problema abierto similar en la página de problemas de Nuget GitHub ( https://github.com/NuGet/Home/issues/1629 ).

Me he enfrentado a un problema relacionado con la plataforma universal de Windows que me vuelve loco.

Digamos que tengo dos proyectos en mi solución: el primero es la aplicación Universal Windows ( TestApp ) y el segundo es la biblioteca de clases de Universal Windows ( TestClassLibrary ). TestApp tiene una referencia a TestClassLibrary . La TestClassLibrary se refiere a un paquete Newtonsoft.Json NuGet (podría ser cualquier otro paquete).

Y ahora la parte extraña. Cualquier referencia dentro de TestClassLibrary se vuelve pública para TestApp . Puedo usar cualquier espacio de nombres específico de NewtonsoftJson en clases de TestApp , a pesar de que ni TestApp.csproj ni project.json tienen una sola referencia a Newtonsoft.Json en absoluto. Esto viola la incapsulación de TestClassLibrary, por lo que sus detalles de implementación (es decir, bibliotecas referenciadas) se hacen públicos, y no quiero eso.

La pregunta es: ¿es esta una característica de las bibliotecas de clases de UWP y dónde puedo leer al respecto? ¿O es esto un error NuGet?