La tâche Albacore Nuspec peut-elle résoudre toutes les dépendances automatiquement?

StackOverflow https://stackoverflow.com//questions/9619053

  •  09-12-2019
  •  | 
  •  

Question

La tâche Albacore Nuspec peut-elle résoudre toutes les dépendances nécessaires pour une solution?Lorsque j'ai plusieurs projets avec des dépendances changeantes, il faut beaucoup d'efforts pour garder le filet de râteau à jour.Peut-il être automatisé?

desc 'create the nuget package'
nuspec do |nuspec|
   nuspec.id = 'myprojectid'
   nuspec.version = '1.2.3'
   nuspec.authors = 'Jon Jones'
   nuspec.description = 'my-project is a collection of utilties'
   nuspec.title = 'my-project'
   nuspec.dependency <magic here>
end

Une solution manuelle serait de passer par les fichiers de paquets et de la résoudre à la main.Quelqu'un a-t-il écrit quoi que ce soit automatisé?

Était-ce utile?

La solution

Je me rends compte que c'est une ancienne question, mais voyant que cela n'a pas de réponse, cela pourrait aider quelqu'un à la recherche de la même chose. Je travaille actuellement sur certaines tâches de Rake pour automatiser davantage la création de fichiers NUSPEC de manière conventionnelle / autonome, je vais donc mettre à jour ce message plus tard avec la solution finale.

Pour répondre à la question à portée de main cependant, voici une petite fonction rubis qui tirera des dépendances hors du fichier de packages.Config pour un projet donné dans la solution.

def GetProjectDependencies(project)
    path = "#{File::dirname project.FilePath}/packages.config"
    packageDep = Array.new

    if File.exists? path
        packageConfigXml = File.read("#{File::dirname project.FilePath}/packages.config")
        doc = REXML::Document.new(packageConfigXml)
        doc.elements.each("packages/package") do |package|
            dep = Dependency.new
            dep.Name = package.attributes["id"]
            dep.Version = package.attributes["version"]
            packageDep << dep
        end
    end

    packageDep
end

et la classe de dépendance utilisée:

class Dependency
    attr_accessor :Name, :Version

    def new(name, version)
        @Name = name
        @Version = version
    end
end

Cette méthode prend dans une instance "projet" et attrape les dépendances / versions du fichier package.config pour ce projet.

Comme je l'ai dit, je posterai une solution plus complète bientôt, mais c'est un bon point de départ pour quiconque s'ils en ont besoin.

edit: Désolé, il m'a fallu si longtemps pour poster la version finale de cela, mais voici un lien vers le GIST contenant le code de l'échantillon que je suis actuellement en train d'utiliser pour un certain nombre de projets.

https://gist.github.com/4151627

Fondamentalement, j'enveloppe les données dans une classe "projet" et peupler des dépendances de package.config. En tant que bonus, il ajoute également des dépendances des références interprojecteurs (analyse du fichier de projet). Les classes / logiques sont là, ainsi qu'un exemple de tâche NUSPEC.

Autres conseils

Pour être sûr, il n'y a rien dans le projet Albacore qui le fait maintenant.Il serait intéressant de voir la solution de Mitchell à l'écoute et peut-être déployée dans. Je vais déplacer le code à Un gist , ouvrir un " problème " (amélioration) et travailler sur lecôté :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top