5 votes

Comment inclure la documentation XML du paquet Nuget dans le résultat de la construction de csproj ?

J'ai un paquet nuget qui comprend un fichier de documentation XML.

packages/MyPackage.1.0.0/lib/net472/MyPackage.xml

Cependant, lorsque je construis mon projet, je veux inclure ce fichier xml dans la sortie.

Alors quand je :

dotnet MyProj.csproj -c Release

Je veux avoir :

> ls bin/Release/net472
MyProj.dll
MyPackage.dll
MyPackage.xml

Cependant, il ne se présente jamais. Comment puis-je l'obtenir ?

2voto

geekley Points 545

Affichage La réponse de Vlad ici.

Si vous voulez copier le xml de tous les paquets, cette méthode est meilleure que celle de Snede, car elle fonctionne de manière générique sans nécessiter de spécifier la version .net sur le chemin pour chaque paquet.

<Project>
  <!-- ... -->
  <ItemGroup>
    <PackageReference Include="Example.SomePkg" Version="1.0.0" />
  </ItemGroup>
  <!-- ... -->
  <Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />

  <!-- Add this -->
  <Target Name="_ResolveCopyLocalNuGetPkgXmls" AfterTargets="ResolveReferences">
    <ItemGroup><!-- Copy XML files from all PackageReferences to output dir -->
      <ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')"
      Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)'!='' and Exists('%(RootDir)%(Directory)%(Filename).xml')" />
    </ItemGroup>
  </Target>

</Project>

1voto

yayayahei Points 116

Je trouve une solution : Veuillez la trouver à https://snede.net/add-nuget-package-xml-documentation-to-swagger/?unapproved=168&moderation-hash=14dbe7e7ca3d8affb6ace2bfdb7ff581

Il s'agit en fait d'un problème de copie des fichiers du paquet nuget vers le répertoire de sortie ou le répertoire de publication.

Il suffit de modifier le fichier csproj pour copier le fichier depuis le chemin du paquet après l'exécution de la construction ou de la publication.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X