问题:如何使用FAKE在XML文件中设置特定属性?使用FAKE处理XML文件
我想在FAKE的帮助下构建一个Windows Phone 8.1项目。版本标记是构建脚本的参数。标签已经被烤成assemply信息:
let version = getBuildParamOrDefault "version" "0.0.0.1"
Target "AssemblyInfo" (fun _ ->
CreateCSharpAssemblyInfo "./src/SharedAssemblyInfo.cs"
[
Attribute.Product product
Attribute.Version version
Attribute.FileVersion version
Attribute.Metadata ("githash", commitHash)
]
)
有在包含版本信息了Windows Phone 8.1的项目的另一个文件:Package.appxmanifest。
<?xml version="1.0" encoding="utf-8"?>
<Package ...>
<Identity Name="..." Publisher="..." Version="1.0.0.0" />
...
</Package>
我想更改Identity标签的Version属性的值。它应该包含作为构建参数给出的版本标记。我想这样做在名为“AppxManifest”一个单独的目标,它应该操纵程序集信息文件后执行,但在执行前的MSBuild编译:
Target "AppxManifest" (fun _ ->
???
)
"Clean"
==> "RestorePackages"
==> "AssemblyInfo"
==> "AppxManifest"
==> "Build"
我发现了一个XMLHelper FAKE的文档中(http://fsharp.github.io/FAKE/apidocs/fake-xmlhelper.html),看起来这个东西可以完成这项工作。但没有例子。我无法弄清楚如何去做。