web-dev-qa-db-fra.com

Inclure les dépendances Nuget dans ma sortie de build?

Je crée une application de base .NET modulaire qui peut charger des extensions au moment de l'exécution à l'aide de MEF. J'ai 2 projets, l'un est une bibliothèque que je veux pouvoir charger au moment de l'exécution, puis j'ai mon application principale qui fera le chargement.

Mon projet de bibliothèque a quelques dépendances Nuget. Afin de charger ma bibliothèque au moment de l'exécution, j'ai besoin que ces dépendances Nuget soient disponibles à côté de la bibliothèque au moment de l'exécution, mais la construction à l'aide de VS2017 n'inclut pas ces DLL Nuget dans le cadre de la sortie.

Comment puis-je obtenir les DLL Nuget incluses lorsque je crée ma bibliothèque?

Edit: j'ai essayé dotnet publish et dotnet pack, mais ces deux éléments font de moi un fichier nupkg contenant uniquement mes DLL et non les DLL de nuget dont j'ai besoin. De plus, je ne peux pas charger un nupkg au moment de l'exécution très facilement, c'est pourquoi j'aimerais obtenir les assemblages résultants eux-mêmes.

Pour ce que ça vaut, voici à quoi ressemble mon csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <AssemblyName>JSON.plugin</AssemblyName>
    <IncludeBuiltProjectOutputGroup>true</IncludeBuiltProjectOutputGroup>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Composition" Version="1.0.31" />
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\BDDGen.Types\BDDGen.Types.csproj" />
  </ItemGroup>

</Project>
13
ldam

Pour que le processus de génération copie tous les fichiers DLL référencés des packages NuGet du dossier cache dans la sortie de génération, définissez cette propriété dans un <PropertyGroup>:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
29
Martin Ullrich