2017-01-26 3 views
4

Zum Beispiel, hier ist mein CSPROJ jetzt:Wie kann ich bei der Erstellung einer .NET-Standardklassenbibliothek in VS 2017 RC Paketreferenzen als private Implementierungsdetails beibehalten?

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0"> 
    <PropertyGroup> 
    <TargetFrameworks>netstandard1.3;net451</TargetFrameworks> 
    </PropertyGroup> 
    <ItemGroup> 
    <Compile Include="**\*.cs" /> 
    <EmbeddedResource Include="**\*.resx" /> 
    </ItemGroup> 
    <ItemGroup> 
    <PackageReference Include="Dapper" Version="1.50.2" /> 
    <PackageReference Include="NETStandard.Library" Version="1.6.1" /> 
    </ItemGroup> 
</Project> 

Nichts von Dapper wird in der öffentlichen API ausgesetzt werden, so dass es scheint, wie ich es als eine private Implementierung Detail halten sollte. Wenn Sie jedoch einen Test .nupkg erstellen und von einer .NET Framework-Konsolenanwendung aus darauf verweisen, erhält die App einen Verweis auf Dapper.

Antwort

3

Versuchen Sie, die PrivateAssets Flags:

<PackageReference Include="Dapper"> 
    <Version>1.50.2</Version> 
    <PrivateAssets>Runtime</PrivateAssets> 
</PackageReference> 

Vom docs (was wahrscheinlich eine Klarstellung verwenden könnte):

... diese eine der folgenden Werte enthalten kann:

  • Kompilieren - ist der Inhalt des lib-Ordners zum Kompilieren gegen
  • verfügbar
  • Runtime - der Inhalt des Runtime-Ordner
  • ContentFiles verteilt - der Inhalt des contentfiles Ordner
  • Bauen verwendet - tun die Requisiten/Ziele in den Build-Ordner
  • Mutter gewöhnen - sind die Inhalte von nativer Vermögen für
  • Analysatoren Laufzeit in den Ausgabeordner kopiert - tun die Analysatoren

Oder statt gewöhnen:

  • Keine - keine dieser Dinge werden verwendet
  • Alle - all diese Dinge bekommen verwendet.
+0

Dies ist nützlich, weil es die Abhängigkeit tut verstecken, aber wenn dabei 'msbuild/t: pack' Ich sehe nicht, Dapper Baugruppen oder irgendetwas anderes zu Dapper im .nupkg. Die Suche nach PrivateAssets führte mich zu [diesem Link] (https://github.com/NuGet/Home/wiki/PackageReference-Specification), das scheint, als könnte es nützlich sein. Das ist das erste Mal, dass ich versuche, ein NuGet-Paket zu machen, also vermisse ich vielleicht etwas Offensichtliches. – user1676558

+0

Ich denke, dann Laufzeit, könnte der geeignete Wert für Sie sein. –

Verwandte Themen