2012-12-05 9 views
8

NuGetter을 사용하여 NuGet 패키지 생성 프로세스를 자동화하고 패키지를 NuGet 리포지토리에 업로드하는 빌드 정의를 만들 수있었습니다.빌드 프로세스 중 nuspec 파일 자동 업데이트

하지만이 프로세스를 더욱 자동화하고 싶습니다. 날이 파일을 수동으로 작성하고 소스를 저장하는 대신에, 빌드 프로세스가 nuspec 파일을 빌드 할 수 있어야한다

  • : 단계의 목록은 내가 빌드 프로세스의 일환으로 자동화하고자한다 다음 빌드 프로세스에 대한 저장소를 선택하여 가져옵니다.
  • 빌드 프로세스가 nuspec 필드를 바꿀 수 있어야합니다. 정말 자동화 할 수 있도록하려는

nuspec 필드는 다음과 같습니다 나는이 사람의 이름으로 nuspec 파일에이 필드를 대체하는 빌드 프로세스를 싶습니다

저자 코드를 체크인하십시오. 내가 체크인 주석과 nuspec 파일에이 필드를 대체하는 빌드 프로세스를 싶습니다

releaseNotes.

누구든지이 작업을 수행 할 수 있습니까? 그렇다면 어떻게 자동화 했습니까?

답변

0

여기 How to avoid xml document generation when using nuget pack이 게시물이 도움이 될 몇 가지 아이디어

<XmlUpdate Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" XmlFileName="My.Assembly.nuspec" XPath="//package/metadata/licenseUrl" Value="http://someurl" />   
<XmlUpdate Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" XmlFileName="My.Assembly.nuspec" XPath="//package/metadata/projectUrl" Value="http://someurl" />   
<XmlUpdate Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" XmlFileName="My.Assembly.nuspec" XPath="//package/metadata/iconUrl" Value="http://somenice.png" />    
<XmlUpdate Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" XmlFileName="My.Assembly.nuspec" XPath="//package/metadata/tags" Value="My.Assembly" />   
<XmlUpdate Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" XmlFileName="My.Assembly.nuspec" XPath="//package/metadata/releaseNotes" Value="Review readme.txt for details." /> 
+0

이 포스팅은 내 질문에 대답하지 않습니다. PowerShell 스크립트를 사용하여 빌드 프로세스 중에 올바른 콘텐츠 파일과 함께 NuGet 패키지를 만들 수 있습니다.이 패키지는 완벽하게 작동합니다. NuGet 패키지에서 파일을 포함/제외하려고하지 않습니다.내 문제는 그 빌드 과정에서 nuspec 파일을 생성하고 싶습니다. 그래서, 먼저 nupsec 파일을 체크 아웃하고, 두 번째로 nuspec 파일 필드를 작성자와 릴리스 노트로 업데이트하고, 세 번째로 nuspec 파일을 체크 인하 고자합니다. 이 세 단계는 NuGetter가 nuspec 파일을 검색하기 전에 발생해야합니다. –

4

있습니다.

오픈 소스 프로젝트에 대한 업데이트를 게시하는 자동화 된 프로세스를 만들었습니다. 당신에게 관심의

https://github.com/DefinitelyTyped/NugetAutomation

몇 가지 가능성이 있습니다. 우리가 '템플릿'nuspec을 복사하고 우리가 필요로하는 분야를 주입 PowerShell을 사용하는 방법

  • . (이것을 사용하여 'authors, releaseNotes'필드를 바꿀 수 있습니다.)
  • 공개 누에 츠 서버를 핑 (ping)하여 현재 버전을 얻고 버전을 높이십시오.

일부 Powershell 지식이 필요하지만 시작이 필요합니다.

+0

스크립트를 공유해 주셔서 감사합니다. –

0

당신은 "packages.config"파일의 버전을 복용 스크립트를 실행할 새 게시물 빌드 이벤트를 추가하고 다시 nuspec 파일을 작성할 수 있습니다.

C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -Command .'$(ProjectDir)..\PathToScirptLocation\NuspecAutoUpdate.ps1' -NuspecPath '$(ProjectDir)API.nuspec' -PackagesConfigPath '$(ProjectDir)packages.config' 

본인은 스크립트를해야합니다 사람에 대한 내 GIT에 포스트 빌드 이벤트를 업로드 할 수 있습니다.

https://github.com/avrum/NuspecAutoUpdate

관련 문제