1
+ <Project ToolsVersion =" 4.0" DefaultTargets =" Build" xmlns =" http://schemas.microsoft.com/developer/msbuild/2003" >
2
+ <UsingTask TaskName =" ReplaceFileText" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
3
+ <ParameterGroup >
4
+ <Filename ParameterType =" System.String" Required =" true" />
5
+ <MatchExpression ParameterType =" System.String" Required =" true" />
6
+ <ReplacementText ParameterType =" System.String" Required =" true" />
7
+ </ParameterGroup >
8
+ <Task >
9
+ <Reference Include =" System.Core" />
10
+ <Using Namespace =" System" />
11
+ <Using Namespace =" System.IO" />
12
+ <Using Namespace =" System.Text.RegularExpressions" />
13
+ <Code Type =" Fragment" Language =" cs" >
14
+ <![CDATA[
15
+ File.WriteAllText(
16
+ Filename,
17
+ Regex.Replace(File.ReadAllText(Filename), MatchExpression, ReplacementText)
18
+ );
19
+ ]]>
20
+ </Code >
21
+ </Task >
22
+ </UsingTask >
23
+ <UsingTask TaskName =" ReplaceXmlNodeText" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
24
+ <ParameterGroup >
25
+ <Filename ParameterType =" System.String" Required =" true" />
26
+ <XPathNodeSelector ParameterType =" System.String" Required =" true" />
27
+ <NewValue ParameterType =" System.String" Required =" true" />
28
+ </ParameterGroup >
29
+ <Task >
30
+ <Reference Include =" System.Core" />
31
+ <Reference Include =" System.Xml" />
32
+ <Using Namespace =" System" />
33
+ <Using Namespace =" System.Xml" />
34
+ <Code Type =" Fragment" Language =" cs" >
35
+ <![CDATA[
36
+ var xdoc = new XmlDocument();
37
+ xdoc.Load(Filename);
38
+ var nodes = xdoc.SelectNodes(XPathNodeSelector);
39
+ if(nodes != null)
40
+ {
41
+ foreach (XmlNode node in nodes)
42
+ {
43
+ node.InnerText = NewValue;
44
+ }
45
+ }
46
+ xdoc.Save(Filename);
47
+ ]]>
48
+ </Code >
49
+ </Task >
50
+ </UsingTask >
51
+ <UsingTask TaskName =" AppendXmlNodeText" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
52
+ <ParameterGroup >
53
+ <Filename ParameterType =" System.String" Required =" true" />
54
+ <XPathNodeSelector ParameterType =" System.String" Required =" true" />
55
+ <NewValue ParameterType =" System.String" Required =" true" />
56
+ </ParameterGroup >
57
+ <Task >
58
+ <Reference Include =" System.Core" />
59
+ <Reference Include =" System.Xml" />
60
+ <Using Namespace =" System" />
61
+ <Using Namespace =" System.Xml" />
62
+ <Code Type =" Fragment" Language =" cs" >
63
+ <![CDATA[
64
+ var xdoc = new XmlDocument();
65
+ xdoc.Load(Filename);
66
+ var nodes = xdoc.SelectNodes(XPathNodeSelector);
67
+ if(nodes != null)
68
+ {
69
+ foreach (XmlNode node in nodes)
70
+ {
71
+ node.InnerText = node.InnerText + NewValue;
72
+ }
73
+ }
74
+ xdoc.Save(Filename);
75
+ ]]>
76
+ </Code >
77
+ </Task >
78
+ </UsingTask >
79
+ <UsingTask TaskName =" ReplaceXmlAttributeValue" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
80
+ <ParameterGroup >
81
+ <Filename ParameterType =" System.String" Required =" true" />
82
+ <XPathAttributeSelector ParameterType =" System.String" Required =" true" />
83
+ <NewValue ParameterType =" System.String" Required =" true" />
84
+ </ParameterGroup >
85
+ <Task >
86
+ <Reference Include =" System.Core" />
87
+ <Reference Include =" System.Xml" />
88
+ <Using Namespace =" System" />
89
+ <Using Namespace =" System.Xml" />
90
+ <Code Type =" Fragment" Language =" cs" >
91
+ <![CDATA[
92
+ var xdoc = new XmlDocument();
93
+ xdoc.Load(Filename);
94
+ var attributes = xdoc.SelectNodes(XPathAttributeSelector);
95
+ if (attributes != null)
96
+ {
97
+ foreach (XmlAttribute attribute in attributes)
98
+ {
99
+ attribute.Value = NewValue;
100
+ }
101
+ }
102
+ xdoc.Save(Filename);
103
+ ]]>
104
+ </Code >
105
+ </Task >
106
+ </UsingTask >
107
+ <UsingTask TaskName =" ToShortVersion" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
108
+ <ParameterGroup >
109
+ <Version ParameterType =" System.String" Required =" true" />
110
+ <ShortVersion ParameterType =" System.String" Output =" true" />
111
+ </ParameterGroup >
112
+ <Task >
113
+ <Reference Include =" System.Core" />
114
+ <Using Namespace =" System" />
115
+ <Code Type =" Fragment" Language =" cs" >
116
+ <![CDATA[
117
+ ShortVersion = "";
118
+ foreach (var s in Version.Split('.'))
119
+ {
120
+ if(!string.IsNullOrEmpty(ShortVersion)) ShortVersion += ".";
121
+ ShortVersion += s.TrimStart('0');
122
+ if(ShortVersion.EndsWith(".")) ShortVersion += "0";
123
+ }
124
+ ]]>
125
+ </Code >
126
+ </Task >
127
+ </UsingTask >
128
+
129
+ </Project >
0 commit comments