2017-06-23 2 views
2

Wie die Frage wirklich sagt, wie kann ich mehrere Projekte/Baugruppen mit dotnet pack packen?Mehrere Baugruppen mit dotnet pack packen

Verwendung von VS2017 mit neuen csproj-Dateien.

+0

Möchten Sie sie in ein einziges .nupkg packen? Oder möchten Sie ein .nupkg pro Projekt? –

+0

Ich meine in ein nugget-Paket? –

Antwort

3

Ich habe mich intensiv damit beschäftigt, und die einzige Art, wie ich Dinge funktionierte, war meine eigene Nuspec-Datei zu machen. Ich habe dotnet build -C release verwendet, um die einzelnen Projekte zu erstellen, und ich habe meine nuspec-Datei verwendet, um die mehreren Assemblies in das 1-Paket einzubinden.

Leider scheint es, die große Idee mit dotnet pack war, jedes Projekt mit einer separaten DLL zu verbinden. Wenn Sie mehrere Projekte haben, bestand die Idee darin, jedes Projekt zu packen und sich dabei auf Paketreferenzen zu verlassen.

1

Fügen Sie Baugruppen, was Sie in csproj Datei

<ItemGroup> 
    <Content Include="bin\Release\net46\Newtonsoft.Json.dll"> 
     <PackagePath>lib\net46\</PackagePath> 
     <Pack>true</Pack> 
    </Content> 
    </ItemGroup> 

auch benötigen, wenn Sie Montage wollen aus Ihrer Lösung enthalten Sie diese auf die gleiche Art und Weise tun, aber die Abhängigkeit zu einem anderen nuget Paket Verwendung auszuschließen PrivateAssets tag

<ItemGroup> 
    <Content Include="bin\Release\net46\My.Contracts.dll"> 
     <PackagePath>lib\net46\</PackagePath> 
     <Pack>true</Pack> 
    </Content> 
    </ItemGroup> 

    <ItemGroup> 
    <ProjectReference Include="My.Contracts.csproj"> 
     <PrivateAssets>all</PrivateAssets> 
    </ProjectReference> 
    </ItemGroup> 
+0

Das funktionierte perfekt für mich, vielen Dank! – IGx89