2013-05-09 2 views
8

FAKE 스크립트의 일부로 웹 사이트를 제작하는 대신 게시 할 수 있습니까?FAKE (F # Make)에 웹 사이트 게시

+0

거기에 내장 작업이 있다고는 생각하지 않지만, 확실히 할 수 있습니다 (F #에서 프로그래밍 할 수있는 것과 같습니다). 어떻게 사이트를 게시 하시겠습니까? FTP 또는 다른 것을 사용하고 있습니까? –

+0

안녕하세요. Tomas, 미안 해요. 특히 비주얼 스튜디오의 의미에서 '퍼블리시'한다는 말은 일반적인 것보다는 어딘가에 게시하는 것입니다. 그게 당신이 의미 한 것입니까? 그렇다면 디스크에 게시 만하면되지만 web.config 변환을 실행하고 불필요한 파일 등을 제거합니다. – mattcole

+0

예, 의미가 있습니다. 나는 인터넷에서 주위를 둘러 보았고 대답에 몇 가지 아이디어를 올렸다. –

답변

7

나는 이것에 대한 경험이 없지만 손으로 ​​웹 deploymnent 프로세스를 실행하는 데는 두 가지 방법이있는 것처럼 보입니다. 하나는 MSDuild를 특수 대상 (described here)과 함께 호출하고 다른 옵션 (더 현대적으로 보임)은 MSDeploy 도구 (has a command line interface)를 사용하는 것입니다.

위의 두 가지 모두 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 
) 

, 나는이 테스트하지 않았습니다를 그래서 수도 (여기서 명령 줄 도구를 호출하는 샘플입니다 완전히 잘못된 것일 수도 있습니다.) 그러나 잘하면 웹 전개 나 FAKE 전문가가 오기 전에 유용한 방향으로 안내 할 수 있습니다!

5

여기 한 가지 방법이 있습니다. (출판이 건물없이 을 수행하지 않기 때문에 실제로는 정확하게 질문에 대답하지 않습니다.)

  • 웹 사이트를 게시해야하는 목표를 결정합니다.
  • "빌드"대상에 따라 달라집니다.
  • 게시가 필요한 경우 게시 프로필을 사용하여 "빌드"대상을 사이트에 게시하십시오. 대상 "테스트", "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에 정의 된 게시 프로필에 따라 게시됩니다.