我有一个XML文件,它将GUID存储为属性,我想从另一个XML文件中设置这个属性值。我注意到Msbuild也许能做到。我知道了如何读取这个属性,但我在实际设置值和保存文件时遇到了困难。
下面是我的XML文件中的代码,它将GUID存储为属性(文件名为GUID.properties):
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GUIDProperty>NULL</GUIDProperty>
</PropertyGroup>
</Project>下面是我的XML中的代码,在这里我试图为GUID设置属性:
<!-- Create GUID for Installation -->
<MSBuild.ExtensionPack.Framework.Guid TaskAction="Create">
<Output TaskParameter="FormattedGuidString" PropertyName="GuidString" />
</MSBuild.ExtensionPack.Framework.Guid>
<!-- Set GUIDProperty in GUID.property -->
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateElement" File="$(MSBuildProjectDirectory)\GUID.properties" XPath="GUIDProperty" InnerText="$(GuidString)"/>所以,我所要做的就是在GUID.properties中设置GUID属性。如果没有Msbuild有一种更简单的方法,我完全支持,但在我看来,我可能需要Msbuildextensionpack。我对XML和Msbuild并不十分熟悉,这就是我在这里问的原因。
发布于 2013-10-14 19:55:05
我不认为你真的需要味精。您只需使用msbuild就可以做到这一点。
示例:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Target Name="UpdateGuid">
<PropertyGroup>
<_xmlFile>guid.properties</_xmlFile>
<_newGuid>$([System.Guid]::NewGuid())</_newGuid>
</PropertyGroup>
<XmlPoke Namespaces="<Namespace Prefix='msb' Uri='http://schemas.microsoft.com/developer/msbuild/2003'/>"
XmlInputPath="$(_xmlFile)"
Query="/msb:Project/msb:PropertyGroup/msb:GUIDProperty"
Value="$(_newGuid)" />
</Target>
</Project>https://stackoverflow.com/questions/19367303
复制相似问题