Czy można opublikować stronę internetową zamiast budować ją jako część skryptu FAKE?Opublikuj witrynę w FAKE (F # Make)
Odpowiedz
Ja sam nie mam z tym doświadczenia, ale wygląda na to, że istnieją dwa sposoby ręcznego uruchomienia procesu wdrażania w sieci. Jeden (wygląda na starszy) to wywołanie MSBuild ze specjalnym celem (jako described here), a inna opcja (wygląda bardziej nowocześnie) jest użycie narzędzia MSDeploy (które has a command line interface).
Oba te elementy powinny być łatwe do wywołania ze skryptu FAKE. Oto przykład, który wywołuje narzędzie wiersza poleceń:
Target "Deploy" (fun _ ->
let result =
ExecProcess (fun info ->
info.FileName <- "file-to-run.exe"
info.Arguments <- "--parameters:go-here"
) (System.TimeSpan.FromMinutes 1.0)
if result <> 0 then failwith "Operation failed or timed out"
)
wywołanie skryptu MSBuild powinien wyglądać mniej więcej tak:
Target "BuildTest" (fun _ ->
"Blah.csproj"
|> MSBuildRelease "" "ResolveReferences;_CopyWebApplication"
|> ignore
)
Jak już mówiłem, nie testowałem tego (tak to może całkowicie mylnie), ale miejmy nadzieję, że może wskazać ci przydatny kierunek, zanim niektóre wdrożenia internetowe lub eksperci FAKE przyjdą do SO!
Oto jeden sposób, aby to zrobić. (Faktycznie to nie dokładnie odpowiedzieć na to pytanie, ponieważ publikowanie nie jest wykonywana bez budynku.)
- Zdecyduj, które cele muszą publikować na stronie internetowej.
- Spraw, aby były zależne od celu "Kompilacja".
- Ustaw obiekt docelowy "Buduj", publikując witrynę, korzystając z profilu publikowania, jeśli potrzebne jest publikowanie.
Oto fragment kodu z build.fsx
ilustrujących to podejście:
let testProjects = @"src/**/*Tests.csproj"
let requestedTarget = getBuildParamOrDefault "target" ""
let shouldDeploy =
match requestedTarget with
| "Test" | "AcceptanceTest" | "Deploy" -> true
| _ -> false
// *** Define Targets ***
Target "BuildApp" (fun _ ->
let properties =
if shouldDeploy
then [ ("DeployOnBuild", "true"); ("PublishProfile","LocalTestServer.pubxml") ]
else []
!! @"src/**/*.csproj"
-- testProjects
|> MSBuildReleaseExt null properties "Build"
|> Log "Build-Output: "
)
// Other targets and dependencies omitted.
Z tego kodu w miejscu, gdy prowadzony jest jednym z celów „Test”, „AcceptanceTest”, „wdrożyć” , strona internetowa zostanie opublikowana zgodnie z profilem publikowania zdefiniowanym w LocalTestServer.pubxml
.
- 1. Opublikuj witrynę Google Drive z niestandardową domeną
- 2. Generowanie „Fake” rekordy kwerendy
- 3. FAKE: Jak zdefiniować właściwości MSBuild?
- 4. Wykonywanie skryptu PowerShell w programie Fake
- 5. Opublikuj błąd w Visual Studio
- 6. Implementacja `make check` lub` make test`
- 7. jak wykonać "make" make file
- 8. dlaczego "make" przed "make install"
- 9. F # pętli w F #
- 10. Opublikuj profil nie wdrażany w systemie TFS Kompilacja
- 11. Jak uzyskać dostęp do webkita-fake-url
- 12. Ustawianie kodu wyjściowego w hostowanym samouczkującym skrypcie F #
- 13. Opublikuj szablon NIFI poprzez REST?
- 14. Opublikuj wydarzenie bez PayLoad w Prism EventAggregator?
- 15. Opublikuj moją usługę RESTful Web w Internecie
- 16. Co robi "make oldconfig" dokładnie w pliku make jądra Linuksa?
- 17. Czy istnieje sposób na FAKE dziedziczenia w C#/VB.NET?
- 18. Opcja GNU make - zrób w QMAKE
- 19. łupania zmienna w pliku make
- 20. Uruchamianie make w każdym podkatalogu
- 21. Jak podzielić ciąg w make?
- 22. Jak udostępnić witrynę w trybie offline?
- 23. Jak odświeżyć witrynę aktualizacji w Eclipse
- 24. w stanie zbudować witrynę Jekyll ... nieprawidłową datę
- 25. Jak hostować witrynę ASP.NET MVC w podfolderze
- 26. F # F # interaktywne vs. roztworze i WCF
- 27. Jak chronić witrynę admin django?
- 28. Zend_Service_Twitter - Make API v1.1 ready
- 29. web.config, web.debug.config, web.release.config & Opublikuj vs debugowanie?
- 30. Jak wdrożyć witrynę WordPress i witrynę Django w tej samej domenie?
Nie sądzę, że jest to wbudowane w to zadanie, ale możesz to zrobić (tak jak wszystko, co możesz zaprogramować w F #). Jak chcesz opublikować witrynę? Korzystasz z FTP lub czegoś innego? –
Cześć Tomas, przepraszam, konkretnie mam na myśli "publikuj" w sensie Visual Studio, a nie ogólne, publikuj go gdzieś. Czy to też miałeś na myśli? Jeśli tak, to musisz tylko opublikować go na dysku, ale uruchamia transformacje web.config, usuwa niepotrzebne pliki itp. – mattcole
Rozumiem, że to ma sens. Rozejrzałem się po internecie i zamieściłem kilka pomysłów w odpowiedzi. –