Transitive Referenzen in .Net Core 1.1

11

Bei der Entwicklung einer Beispiel-Web-App in .NET Core 1.1 und Visual Studio 2017 RC habe ich Folgendes festgestellt:

Wie Sie sehen können:

  • ClassLibrary3 hat einen Verweis auf ClassLibrary2,
  • und ClassLibrary2 hat einen Verweis auf ClassLibrary1

Ich schrieb eine einfache Methode in Klasse Class3 des ClassLibrary3-Projekts, und die Intellisense erlaubte mir, Klasse1 zu verwenden, indem ich einfach nur den Namen der Klasse schrieb, ohne explizit auf das ClassLibrary1-Projekt zu verweisen.

Fehle ich hier etwas? Ich will nicht, dass jemand einfach kommt und ClassLibrary2 übersieht.

Danke.

    
Franco 24.02.2017, 00:11
quelle

2 Antworten

10

Transitive Projekt-zu-Projekt-Referenzen sind ein neues Feature von Visual Studio 2017 und Microsoft.NET.Sdk. Dies ist absichtliches Verhalten.

Siehe Ссылка .

    
natemcmaster 24.02.2017, 05:18
quelle
6

Wenn Sie das transitive Referenzverhalten deaktivieren möchten, habe ich endlich einen Weg gefunden.

Wenn Sie wollen, dass Projekt A B und B auf C referenziert, A aber nicht auf C referenziert, können Sie PrivateAssets="All" zu B's ProjectReference zu C hinzufügen, etwa so:

In B.csproj

%Vor%

Diese Einstellung macht den Verweis von C privat, so dass er nur in B existiert. Projekte, die jetzt auf B verweisen, verweisen nicht mehr auf C.

Quelle: Ссылка

    
levihassel 30.09.2017 04:03
quelle