Может ли задача Nuspec Albacore автоматически разрешила все зависимости?

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

  •  09-12-2019
  •  | 
  •  

Вопрос

Может ли задача albacore nuspec разрешать все необходимые зависимости для решения?Когда у меня есть несколько проектов с изменяющимися зависимостями, требуется много усилий, чтобы держать гранфила до настоящего времени.Может ли это автоматизировать?

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
.

Ручное решение будет проходить через файлы пакетов и разрешить это вручную.Кто-нибудь написал что-нибудь автоматизированное?

Это было полезно?

Решение

Я понимаю, что это старый вопрос, но видит, как у него нет ответа, это может помочь кому-то искать то же самое. В настоящее время я работаю над некоторыми задачами грабля, чтобы дополнительно автоматизировать создание файлов NUSPEC в обычном / автономном пути, поэтому я обновит этот пост позже с окончательным решением.

Чтобы ответить на вопрос под рукой, хотя здесь небольшая функция Ruby, которая вытащит зависимости из файла Packages.config для данного проекта в решении.

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
.

и используемый класс зависимости:

class Dependency
    attr_accessor :Name, :Version

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

Этот метод принимает в «проекте» экземпляра и захватывает зависимость / версии из файла Package.config для этого проекта.

Как я уже сказал, я опубликую более полное решение в ближайшее время, но это хорошая отправная точка для всех, если им это нужно.

Редактировать: Извините, что мне так много времени, чтобы опубликовать окончательную версию этого, но вот ссылка на гейст, содержащий код образца, в настоящее время я использую для ряда проектов. .

https://gist.github.com/4151627

В основном я обернутую данные в «проекте» классах и заполните зависимости от Package.config. В качестве бонуса он также добавляет зависимости от ссылок интерфейса (анализируют файл проекта). Классы / логика там, а также образец задачи NUSPEC.

Другие советы

Убедитесь, что в проекте Albacore нет ничего, что делает это прямо сейчас.Было бы интересно увидеть решение Митчелла настроили и, возможно, перевернуты. Я собираюсь переместить код на цик/ a>, Откройте « Проблема » (Улучшение) и работать над ним насторона :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top