È possibile pubblicare un sito Web invece di crearlo come parte di uno script FAKE?Pubblica sito Web in FAKE (F # Make)
risposta
Non ho esperienza con questo, ma sembra che ci siano due modi per eseguire il processo deploymnent Web a mano. Uno (sembra più vecchio) è di invocare MSBuild con un obiettivo speciale (come described here) e un'altra opzione (sembra più moderna) è quella di utilizzare lo strumento MSDeploy (che has a command line interface).
Entrambi devono essere facili da chiamare dallo script FAKE. Ecco un esempio che chiama uno strumento a riga di comando:
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"
)
Calling uno script MSBuild dovrebbe essere simile a questo:
Target "BuildTest" (fun _ ->
"Blah.csproj"
|> MSBuildRelease "" "ResolveReferences;_CopyWebApplication"
|> ignore
)
Come ho detto, non ho ancora testato questo (così si potrebbe si sbaglia completamente), ma si spera che possa indirizzarti verso una direzione utile, prima che alcuni esperti di FAKE o di distribuzione web vengano a SO!
Ecco un modo per farlo. (In realtà non è esattamente rispondere alla domanda, perché la pubblicazione non viene eseguita senza edificio.)
- Decidere quali obiettivi hanno bisogno di pubblicare il sito.
- Farle dipendere dal target "Build".
- Fare in modo che il target "Build" pubblichi il sito utilizzando un profilo di pubblicazione nel caso sia necessaria la pubblicazione.
Ecco un pezzo di codice da build.fsx
che illustra questo approccio:
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.
Con questo codice in luogo, quando uno degli obiettivi "Test", "AcceptanceTest", "Distribuzione" è gestito , il sito web viene pubblicato in base al profilo di pubblicazione definito in LocalTestServer.pubxml
.
- 1. Pubblica sito web Ottenere vuoto Cartella
- 2. Mono XBuild pubblica sito MVC
- 3. Pubblica un sito web di Google Drive con dominio personalizzato
- 4. Visual Studio Pubblica sito Web utilizzando SCP/SFTP
- 5. NServiceBus Pubblica() vs. Send() in un contesto sito
- 6. Come posso distribuire un'applicazione web utilizzando F # per Azure Sito Web
- 7. Libreria server Web F #
- 8. Pubblica WebApi in sottocartella
- 9. Url sarà riscritto con htaccess make sito Web scoperto dal motore di ricerca?
- 10. L'applicazione Web non pubblica senza file .cs
- 11. Pubblica progetti WebAPI e MVC sullo stesso sito Web di Azure?
- 12. Perché Visual Studio 2010 pubblica il sito Web con il codice sorgente?
- 13. Pubblica profilo non funzionante durante la creazione del progetto di sito Web
- 14. Windows fake mic
- 15. Il sito Web statico Amazon S3 non pubblica file css o js
- 16. Quando si pubblica il sito Web su azzurro, i webjob vengono eliminati
- 17. browser web sito timeout
- 18. Traduttore per sito web
- 19. Expert F # esempio web crawler
- 20. Admob per sito web
- 21. Rallentamento del sito web
- 22. Ottimizzazione sito web PHP
- 23. layout cartella sito web
- 24. Sito Web multilingue
- 25. Pubblica distribuzione Web utilizzando il codice VS
- 26. Eclipse - Pubblica & Esegui progetto Web semplice
- 27. Come si ottiene il comando "Pubblica sito Web" per emettere i file PDB per il progetto del sito Web Visual Studio 2005?
- 28. Fake Broken in Visual Studio 2015
- 29. Esecuzione di uno script Powershell in Fake
- 30. Posso passare un parametro a uno script di compilazione FAKE F #?
Non penso che ci sia un compito predefinito per farlo, ma puoi certamente farlo (proprio come qualsiasi altra cosa che puoi programmare in F #). Come vuoi pubblicare il sito? Usando FTP o qualcos'altro? –
Ciao Tomas, mi dispiace in particolare intendo "pubblicare" nel senso di Visual Studio piuttosto che un generico pubblicarlo da qualche parte. È anche questo che intendevi? Se è così, allora basta pubblicarlo su disco, ma esegue le trasformazioni web.config, rimuove i file non necessari ecc. – mattcole
Vedo, sì, ha senso. Mi sono guardato su Internet e ho postato alcune idee in una risposta. –