2017-05-31 2 views
1

Outils utilisés: Visual Studio 2015 Enterprise, Nuget 3.5, .NET Framework 4.0NuGet restore package avec le contenu du fichier xml - Exemple de travail?

Est-ce que quelqu'un a un exemple de travail d'un paquet NuGet qui inclut des fichiers xml ainsi que des bibliothèques de DLL?

J'ai lu des notes dispersées à ce sujet dans beaucoup d'endroits, mais je n'ai pas encore trouvé un échantillon de travail. Il semble y avoir un débat quant à savoir si les fichiers xml appartiennent dans le dossier net ou dans le dossier des fichiers de contenu. Je suis également en train de lire que nous avons besoin d'une sorte de script de shell de puissance pour copier le fichier dans bin quand le paquet s'installe?

Le fichier XML doit être dans le dossier BIN avec les fichiers DLL lorsque le package est installé.

Un échantillon de travail aiderait beaucoup.

Répondre

0

Le fichier XML doit être dans le dossier BIN avec les DLL lors de l'installation du package.

Si vous souhaitez distribuer vos fichiers xml avec votre package NuGet dans le même dossier que votre dll, vous devez les ajouter à votre fichier .nuspec, par exemple:

<files> 
<file src="bin\Debug\TestNuGetPackage.dll" target="lib\Net462" /> 
<file src="bin\Debug\TestNuGetPackage.xml" target="lib\Net462" /> 
</files> 

Voici les étapes de détail:

  1. Créez un projet de bibliothèque de classes C# vide, ouvrez le projet dans l'explorateur de fichiers.
  2. Utilisez nuget spec "..\TestNuGetPackage.csproj" pour créer le fichier TestNuGetPackage.csproj.nuspec.
  3. Modifier le fichier .nuspec, ci-dessous est mon fichier .nuspec:

    <?xml version="1.0"?> 
    <package > 
    <metadata> 
        <id>TestNuGetPackage</id> 
        <version>1.0.0</version> 
        <authors>Tester</authors> 
        <owners>Tester</owners> 
        <requireLicenseAcceptance>false</requireLicenseAcceptance> 
        <description>A description of your library</description> 
        <releaseNotes>Release notes for this versio</releaseNotes> 
        <copyright>Copyright 2017</copyright> 
        <tags>Tag1 Tag2</tags> 
    </metadata> 
    <files> 
        <file src="bin\Debug\TestNuGetPackage.dll" target="lib\Net462" /> 
        <file src="bin\Debug\TestNuGetPackage.xml" target="lib\Net462" /> 
    </files> 
    </package> 
    
  4. Utilisez nuget.exe pack "..\TestNuGetPackage.csproj.nuspec" pour créer un package.

  5. Créez un projet de test avec .net framework 4.62, puis installez ce package dans le projet et construisez-le. Vous trouverez le fichier xml dans le dossier BIN avec les dll.

+2

Je peux obtenir le xml à apparaître dans le dossier Net40 que j'utilise dans le paquet nuget. Le problème est le xml ne restaure pas dans le dossier bin quand la DLL le fait. Le fichier XML ne restaure pas du tout. Peut-être qu'il y a un switch que j'ai besoin d'ajouter à ma restauration de nuget pour obtenir le xml à restaurer aussi? Je pensais que je préparais mal les paquets, mais il semble que je fais les bons. – user5855178

+0

J'ai trouvé quel est le problème: Project.Json et .NET Framework 4.0. Si j'utilise le fichier 452 et le fichier package.config, tout fonctionne correctement, mais si vous utilisez les outils indiqués ci-dessus, cela ne fonctionne PAS, désolé. – user5855178

+1

Wow, vous avez raison. Je ne l'ai pas remarqué avant, merci pour votre partage. Cela peut ne pas prendre en charge dans la version précédente framework et project.json. Vous pouvez convertir votre commentaire pour répondre, puis le marquer afin qu'il puisse aider d'autres membres de la communauté qui ont les mêmes problèmes et trouver plus facilement la raison de ce problème. Merci. –