2014-05-02 9 views
6

Chcę opublikować pakiety nuget od FAKE. Ale nie używam NuGet do tworzenia tych pakietów. Mam OctoPack zainstalowany w niektórych projektach i używam kompilacji z/p: RunOctoPack = True. Zrzuca pliki .nupkg w katalogu bin. Jak mogę następnie zebrać te pakiety i przekazać je do serwera NuGet? Nie wydaje mi się, żeby NuGetPublish i FileIncludes współpracowały ze sobą.Publikowanie pakietów zewnętrznych

edit: teraz pracowałem wokół niego za pomocą ExecProcess

Target "Publish" (fun _ -> 
    let result = ExecProcess (fun info -> 
        info.FileName <- "MySolution/.nuget/NuGet.exe" 
        info.WorkingDirectory <- "MySolutionDirectory" 
        info.Arguments <- "push \"**/bin/**/*.nupkg\" -s http://my-nuget-server") TimeSpan.MaxValue 

    if result <> 0 then failwithf "NuGet.exe push returned with a non-zero exit code" 

)

Odpowiedz

1

Mamy NuGet Publish task co powinno robić dokładnie to, czego potrzebujesz.

+0

Jestem osobiście całkiem nowy w tej całej sprawie. W jaki sposób wykorzystujemy to, co łączysz? IE: Jeśli mam już nupkg i chcę go opublikować, jak mam to zrobić? –

1

Jak wspomniał Steffen, możesz użyć zadania NuGet Publish, jest ono opisane w API, ale nie ma tam samouczka.

Kod skrypt może wyglądać następująco:

NuGetPublish (fun nugetParams -> 
    { nugetParams with 
     AccessKey = "nuget_api_key" 
     PublishUrl = "nuget_feed_url" 
     Project = "project_name" 
     Version = "project_version" 
     WorkingDir = "nupkg_file_location" 
    } 
) 

Gdzie:

  • Project - główną częścią ciebie nupkg nazwy pliku (tj My.Super.Project)
  • wersja - część wersja twoja nazwa pliku nupkg (np. 0.0.10)
  • WorkingDir - lokalizacja twojego pliku nukpg

Pełna nazwa pliku nupkg że to zadanie będzie szukał to:

WorkingDir\Project.Version.nupkg

+0

Dziękuję Alexey za przykład! Musiałem również przypisać wartość do OutputPath. Bez tego Fake próbował pobrać pakiet nuget z folderu. \ NuGet \ Project.Version.nupkg. Po ustawieniu OutputPath działało dobrze – Nasser