FAKE: How to define MSBuild properties?

2019-02-16 23:19发布

问题:

I want to switch from MSBuild to FAKE. In my MSBuild script I create a Webdeploy package by invoking MSBuild with the properties DeployOnBuild=True and DeployTarget=Package. This will trigger webdeploy to generate a deployment package while the build is running:

<MSBuild Projects="@(ItemToBuild)"
         Targets="Build"
         Properties="Configuration=$(Configuration);
                     Platform=$(Platform);
                     DeployOnBuild=True;
                     DeployTarget=Package;
                     OutFolder=$(OutFolder)" />

How can I do the same thing with FAKE? I've come this far:

Target "Build" (fun _ ->
    !! solutionFile
    |> MSBuildRelease binDir "Build"
    |> Log "Build-Output: "
)

How can I specify the required properties?

回答1:

If you look at the source code, you'll see that MSBuildRelease is just a shortcut for MSBuild proper with certain predefined properties. If you need to define other properties, besides "Configuration", you can just fall back to MSBuild:

Target "Build" (fun _ ->
    !! solutionFile
    |> MSBuild binDir "Build" 
         [ 
            "Configuration", "Release"
            "Platform", "AnyCPU"
            "DeployOnBuild", "True"
            "DeployTarget", "Package"
            "OutFolder", "/what/ever"
         ]
    |> Log "Build-Output: "
)


标签: f# f#-fake