2013-05-09 4 views
8

FAKEスクリプトの一部としてウェブサイトを構築するのではなく、ウェブサイトを公開することは可能ですか?FAKE(F#Make)にウェブサイトを公開

+0

私はそれを行うための組み込みのタスクがあるとは思わないが、確かにそれを行うことができます(F#でプログラムできるものと同じように)。どのようにサイトを公開したいですか? FTPなどを使用していますか? –

+0

こんにちはトーマス、申し訳ありませんが、具体的には、一般的なものではなく、Visual Studioの意味で「公開する」という意味です。それもあなたが意味するものですか?そうであれば、ディスクに公開するだけで済みますが、web.configの変換を実行し、不要なファイルなどを削除します。 – mattcole

+0

私は理解しています。私はインターネット上を見回し、答えにいくつかのアイデアを投稿しました。 –

答えて

7

これは私自身の経験はありませんが、手作業でWebデプロイメントプロセスを実行するには2つの方法があるようです。 MSDuployツール(has a command line interface)を使用するのは、特殊ターゲット(described here)とMSBuildを呼び出す方法(古いもの)です。

これらの両方は、FAKEスクリプトから簡単に呼び出す必要があります。

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" 
) 

次のようなものになりますMSBuildのスクリプトを呼び出す:私が言ったように

Target "BuildTest" (fun _ -> 
    "Blah.csproj" 
    |> MSBuildRelease "" "ResolveReferences;_CopyWebApplication" 
    |> ignore 
) 

が、私はこれをテストしていませんがそれは可能性があります(ここでは、コマンドラインツールを呼び出すサンプルです完全に間違っているかもしれませんが、うまくいけば、あなたに有用な方向に向けることができます。

5

これを行う方法の1つです。 (出版は建物なしが行われていないため、実際には、正確に、質問に答えていません。)

  • は、ウェブサイトを公開する必要があるターゲットを決定します。
  • 「ビルド」ターゲットに依存するようにします。
  • パブリッシュが必要な場合は、パブリッシュプロファイルを使用して「ビルド」ターゲットをサイトにパブリッシュします。ターゲット 「テスト」、「AcceptanceTest」、「展開」のいずれかが実行されている場所で、このコードで

    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. 
    

    、:ここ

は、このアプローチを示すbuild.fsxからのコードの一部でありますウェブサイト は、LocalTestServer.pubxmlで定義されている公開プロファイルに従って公開されます。

関連する問題