NuGet vs direkte Referenz der Klasse w / EF6 Entities

7

Ich habe eine Klassenbibliothek mit zahlreichen EF6-Entitäten. Ich habe ein NuGet aus dieser Bibliothek generiert. Immer, wenn ich direkt auf die Bibliothek referenziere, wird nur die DLL in den Bin geladen. Wenn ich die Bibliothek jedoch über NuGet installiere, kopiert sie die Entitäten * Content.tt und * .tt Dateien in einen Ordner im Projekt.

Ich habe ein paar Fragen zu diesem Unterschied:

  1. Warum benötigt NuGet diese Dateien, wenn ein Verweis auf das Projekt nicht vorhanden ist?

  2. Benötigen Sie diese Entity-Dateien oder kann ich NuGet zwingen, diese Dateien nicht zu klonen, wenn sie installiert sind?

Meine .nuspec Datei ist Standard wie folgt:

%Vor%

Die Befehle, die ich zum Generieren des Pakets verwende, sind:

  

c: \ nugget.exe pack MYID.csproj-IncludeReferencedProjects -Prop   Plattform = AnyCPU

     

c: \ nuget.exe MYID.1.0.0.nupkg hinzufügen - Quelle M: ​​\ Dev \ NuGetPackages

    
Nugs 23.08.2017, 14:44
quelle

2 Antworten

4

.tt-Dateien werden nicht benötigt, es sei denn, Sie führen eine Laufzeitcodegenerierung durch. Da Sie in eine DLL verpacken, ist dies nicht der Fall. T4-Templates (.tt-Dateien) werden vom Entity-Framework verwendet, um C # -Klassen aus EDMX-Dateien zu generieren, wenn Ihre Objekte im Diagramm geändert werden. Sie werden nicht benötigt, um den endgültigen Code auszuführen.

Überprüfen Sie die Antwort Ausschließen eines T4 Vorlage aus einem NuGet-Paket , können Sie .tt-Dateien von der Verpackung ausschließen.

    
Amit 30.08.2017, 14:52
quelle
1

Eine kleine Recherche über das Web zeigt, dass dieses Problem vielen Benutzern zwischen Version 3.4.3 bis 3.4.4 aufgefallen ist und in Version 3.5.0 behoben wurde.

Wie es scheint, war es ein Microsoft Bug zwischen den Paketen. Ich weiß nicht, welche Version Sie verwenden, aber ich empfehle, diese Möglichkeit zu prüfen.

    
Barr J 29.08.2017 06:54
quelle

Tags und Links