Albacore NUSPEC 작업은 모든 종속성을 자동으로 해석 할 수 있습니까?

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

  •  09-12-2019
  •  | 
  •  

문제

Albacore NoSpec 작업은 해결 방법에 필요한 모든 종속성을 해결할 수 있습니까?변화하는 종속성이있는 여러 프로젝트가있을 때 레이크 파일을 최신 상태로 유지하기 위해 많은 노력이 필요합니다.이것은 자동화 될 수 있습니까?

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
.

수동 솔루션은 패키지 파일을 통과하고이를 손으로 해결하는 것입니다.누군가가 자동화 된 것을 작성한 사람이 있습니까?

도움이 되었습니까?

해결책

이것은 이것이 오래된 질문이라는 것을 알고 있지만 답변이 없기 때문에 똑같은 것을 찾는 데 도움이 될 것입니다. 현재 NoSpec 파일을 기존 / 자율적 인 방식으로 자동화하기 위해 Rake 작업을 더욱 연구하고 있으므로 나중에 최종 솔루션 으로이 게시물을 업데이트 할 것입니다.

손에 질문에 대답하기 위해서는 여기에 솔루션의 주어진 프로젝트에 대한 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 파일에서 종속성 / 버전을 잡습니다.

내가 말했듯이, 곧 더 완전한 해결책을 게시 할 것이지만, 이것은 누구에게나 필요하다면 좋은 출발점입니다.

편집 : 이 모든 버전을 게시하기가 너무 오래 걸리지 만 현재 많은 프로젝트에 대해 사용하고있는 샘플 코드가 들어있는 GIST에 대한 링크가 있습니다.

https://gist.github.com/4151627

기본적으로 데이터를 "프로젝트"클래스로 래핑하고 package.config에서 종속성을 채 웁니다. 보너스로서, 그것은 또한 인토 투입 참조에서 종속성을 추가합니다 (프로젝트 파일 구문 분석). 클래스 / 논리는 샘플 nuspec 태스크뿐만 아니라

다른 팁

확실히 지금, 지금 당장 그렇게하는 albacore 프로젝트에 아무 것도 없습니다.Mitchell의 솔루션이 조정 된 것으로 보이는 것은 흥미로울 것입니다. Gist ""(향상)를 엽니 다.측면 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top