Bir FAKE betiğinin parçası olarak oluşturmak yerine bir web sitesi yayınlamak mümkün mü?FAKE (F # Make) 'da yayın web sitesi (F # Make)
cevap
Bu kendimle ilgili deneyimim yok, ancak web deploymnent işlemini elle çalıştırmanın iki yolu var gibi görünüyor. Bir (daha eski görünüyor) MSBuild'i özel bir hedefle (described here olarak) çağırmak ve başka bir seçenek (daha modern görünüyor) MSDeploy aracını kullanmaktır (has a command line interface).
Bunların her ikisi de FAKE komut dosyasından çağırılması kolay olmalıdır.
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"
)
bu gibi görünmelidir bir MSBuild komut dosyası çağırma: Dediğim gibi
Target "BuildTest" (fun _ ->
"Blah.csproj"
|> MSBuildRelease "" "ResolveReferences;_CopyWebApplication"
|> ignore
)
, ben bu test değil yani olabilir (Burada bir komut satırı aracı çağıran bir örnektir Tamamen yanlıştır, ama umarım, bazı web dağıtımı veya FAKE uzmanları SO'ya gelmeden önce, sizi yararlı bir yöne yönlendirebilir!
İşte bunu yapmanın bir yolu. (Yayıncılık binanın olmadan gerçekleştirilmez çünkü Aslında tam olarak, soruya cevap vermez.)
- web sitesi yayınlamak gereken hedefler karar verin.
- Onları "Oluşturma" hedefine bağlı hale getirin.
- Yayınlama gerektiğinde, bir yayınlama profili kullanarak siteyi "Oluştur" hedefini yayınlayın. hedeflerin "Test", "AcceptanceTest", "dağıtma" biri çalıştırılır etapta bu kod ile
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.
: Burada
bu yaklaşımı gösteren build.fsx
kod parçasıdır web sitesi, LocalTestServer.pubxml
'da tanımlanan yayınlama profiline göre yayınlanmaktadır.
- 1. F # Özel Operatörler Önceliği F # 'da
- 2. MinGW's make ve MSYS's make arasındaki farklar hangileridir?
- 3. Make ASP.Net (C#) Web Uygulaması Uygun Çevrimdışı
- 4. Github repo'dan Gist to make make on bl.ocks.org
- 5. make: console` ile make: command` arasındaki fark nedir?
- 6. Make DateTime :: createFromFormat()
- 7. make ve MinGW
- 8. Ondalık Dönüşüm F # Senaryo F # Interactive F #
- 9. F System.String.Split kullanarak F #
- 10. F #
- 11. F #
- 12. F #
- 13. F #:
- 14. F #
- 15. F arasında sıralama sıralama F #
- 16. Make Syntastic close error penceresi
- 17. Make a kaydırıcı duyarlı (jQuery)
- 18. GNU Make. Tek bir Makefile
- 19. GNU make 3.81: eval işlevi çalışmıyor mu?
- 20. F # değer kısıtlaması
- 21. Tanımsız başvuru 'WinMain @ 16' minGW32-make hatası
- 22. F # - F # etkileşimini yayınlamadan çıkış tutun
- 23. F # içinde yinelenen harita referansı F #
- 24. F boş bir sınıf nasıl oluşturulur? F
- 25. F # işlevinde birden çok değerlendirmeyi zorla F #
- 26. Mercurial: make `hg log` dosyaları göstermiyor mu?
- 27. Windows'da Vim ile MinGW make nasıl kullanılır
- 28. F # parametresi
- 29. FirstOrDefault F #
- 30. F C#
Bunu yapmak için yerleşik bir görev olduğunu düşünmüyorum, ama kesinlikle bunu yapabilirsiniz (tıpkı F # programında yapabileceğiniz diğer her şey gibi). Siteyi nasıl yayınlamak istersiniz? FTP'yi veya başka bir şeyi mi kullanıyorsunuz? –
Merhaba Tomas, özür dilerim, özellikle Visual Studio anlamında, bir jenerik yayınlamak yerine bir yerde yayınlamak demek istiyorum. Bu da demek istediğin şey mi? Öyleyse, o zaman sadece diske yayınlamak gerekir, ancak web.config dönüştürür çalışır, gereksiz dosyaları kaldırır vb – mattcole
Evet, bu mantıklı. İnternete baktım ve bir cevaba bazı fikirler yolladım. –