2017-03-20 72 views
2

如何使用FAKE更新XML文件中的屬性?使用FAKE F#更新XML文件製作

我想從假冒更新xml文件。其實version_no是由teamcity生成的一類東西,我必須在version.config文件中更新該版本號。

我已經看到,它可以使用XMLHelper類來完成,但我沒有得到如何使用它。

這裏是xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<version-info> 
    <major-version number="1"> 
    <minor>1-aplha</minor> 
    <build>123</build> 
    <revision>112</revision> 
    </major-version> 
</version-info> 

例如:我需要分別改變主要版本,次要,建立,修訂2,1,12,123。

我該怎麼做?

+0

我想我可能有答案的前三分之一。我希望其他人可以添加其他三分之二:-) 正如您已經注意到的,Fake擁有一個[XMLHelper](http://fsharp.github.io/FAKE/apidocs/fake-xmlhelper.html)模塊,其中包含函數 'XmlPoke fileName xpath value' with this description:「將XML文件中的文本替換爲由XPath表達式指定的位置。」。 你有'build.fsx'文件嗎? –

回答

3

我做了一個'build.fsx'文件的快速編輯。編輯看起來像這樣:

// Build the main module with MSBuild 
Target "BuildMain" (fun _ -> 
    XMLHelper.XmlPokeInnerText "./myxml.xml" "/version-info/major-version/minor" "now-beta" 
    !! "./Kapoin_03_Main/Kapoin_03_Main.fsproj" 
    |> MSBuild buildDir "Build" buildProps 
    |> Log "Main build output: ") 

在構建期間,它編輯'myxml.xml'並替換次標記內的值。編輯後的XML如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
<version-info> 
    <major-version number="1"> 
    <minor>now-beta</minor> 
    <build>123</build> 
    <revision>112</revision> 
    </major-version> 
</version-info> 
+0

謝謝,它工作:) – KMittal