Я понимаю, что это старый вопрос, но, поскольку у него нет ответа, это может помочь кому-то искать то же самое.В настоящее время я работаю над некоторыми задачами Rake для дальнейшей автоматизации создания файлов 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
ThisМетод принимает экземпляр «проекта» и извлекает зависимости / версии из файла package.config для этого проекта.
Как я уже говорил, я скоро опубликую более полное решение, но это хорошоотправная точка для всех, если они нуждаются в этом.
РЕДАКТИРОВАТЬ: Извините, что я занял много времени, чтобы опубликовать окончательную версию этого, но вот ссылка на суть, содержащую образец кода яВ настоящее время я использую несколько проектов.
https://gist.github.com/4151627
По сути, я оборачиваю данные в класс "Project" и заполняю зависимости из package.config.В качестве бонуса он также добавляет зависимости от межпроектных ссылок (анализирует файл проекта).Здесь есть классы / логика, а также пример задачи nuspec.