fake 1.40.5.0 → 1.42.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. data/docs/Fake.Git/AssemblyInfo.htm +5 -1
  2. data/docs/Fake.Git/Branches.htm +12 -48
  3. data/docs/Fake.Git/CommandHelper.htm +5 -1
  4. data/docs/Fake.Git/CommitMessage.htm +15 -3
  5. data/docs/Fake.Git/FileStatus.htm +30 -2
  6. data/docs/Fake.Git/Information.htm +5 -1
  7. data/docs/Fake.Git/Merge.htm +45 -3
  8. data/docs/Fake.Git/MergeType.htm +5 -1
  9. data/docs/Fake.Git/Rebase.htm +141 -0
  10. data/docs/Fake.Git/Repository.htm +5 -1
  11. data/docs/Fake.Git/Reset.htm +5 -1
  12. data/docs/Fake.Git/ReturnException183c26a427ae489c8fd92ec21a0c9a59.htm +5 -1
  13. data/docs/Fake.Git/ReturnNoneException183c26a427ae489c8fd92ec21a0c9a59.htm +5 -1
  14. data/docs/Fake.Git/SHA1.htm +5 -1
  15. data/docs/Fake.Git/SanityChecks.htm +5 -1
  16. data/docs/Fake.Git/Staging.htm +5 -1
  17. data/docs/Fake.Git/Stash.htm +115 -0
  18. data/docs/Fake.Git/Submodule.htm +5 -1
  19. data/docs/Fake.Git/Tags.htm +5 -1
  20. data/docs/Fake.Git/index.htm +7 -1
  21. data/docs/Fake.MSBuild/SpecsRemovement.htm +4 -4
  22. data/docs/Fake.MSBuild/index.htm +1 -1
  23. data/docs/Fake.SQL/AssemblyInfo.htm +1 -1
  24. data/docs/Fake.SQL/ReturnException183c26a427ae489c8fd92ec21a0c9a59.htm +1 -1
  25. data/docs/Fake.SQL/ReturnNoneException183c26a427ae489c8fd92ec21a0c9a59.htm +1 -1
  26. data/docs/Fake.SQL/ServerInfo.htm +1 -1
  27. data/docs/Fake.SQL/SqlServer.htm +1 -1
  28. data/docs/Fake.SQL/index.htm +1 -1
  29. data/docs/Fake/AssemblyInfoHelper.htm +19 -5
  30. data/docs/Fake/AssemblyInfoParams.htm +19 -5
  31. data/docs/Fake/AsyncHelper.htm +19 -5
  32. data/docs/Fake/Build.htm +19 -5
  33. data/docs/Fake/BuildConfiguration.htm +19 -5
  34. data/docs/Fake/BuildServer.htm +19 -5
  35. data/docs/Fake/BuildServerHelper.htm +23 -9
  36. data/docs/Fake/CacheHelper.htm +19 -5
  37. data/docs/Fake/CodeLanguage.htm +19 -5
  38. data/docs/Fake/ConsoleTraceListener.htm +193 -0
  39. data/docs/Fake/DocuHelper.htm +19 -5
  40. data/docs/Fake/DocuParams.htm +19 -5
  41. data/docs/Fake/EnvironmentHelper.htm +19 -5
  42. data/docs/Fake/Event.htm +19 -5
  43. data/docs/Fake/ExecParams.htm +19 -5
  44. data/docs/Fake/FSIHelper.htm +21 -7
  45. data/docs/Fake/FileHelper.htm +19 -5
  46. data/docs/Fake/FileIncludes.htm +19 -5
  47. data/docs/Fake/FileSetHelper.htm +19 -5
  48. data/docs/Fake/FileSystemHelper.htm +19 -5
  49. data/docs/Fake/FxCopErrorLevel.htm +19 -5
  50. data/docs/Fake/FxCopHelper.htm +19 -5
  51. data/docs/Fake/FxCopParams.htm +19 -5
  52. data/docs/Fake/GemHelper.htm +285 -0
  53. data/docs/Fake/GemParams.htm +284 -0
  54. data/docs/Fake/HTMLHelpWorkShopHelper.htm +19 -5
  55. data/docs/Fake/ILMergeHelper.htm +19 -5
  56. data/docs/Fake/ILMergeParams.htm +19 -5
  57. data/docs/Fake/ITraceListener.htm +206 -0
  58. data/docs/Fake/MSBuildHelper.htm +19 -5
  59. data/docs/Fake/MailBoxHelper.htm +20 -26
  60. data/docs/Fake/{TraceMessage.htm → MailboxMessage.htm} +29 -15
  61. data/docs/Fake/MessageHelper.htm +19 -5
  62. data/docs/Fake/NAntXmlTraceListener.htm +193 -0
  63. data/docs/Fake/NCoverHelper.htm +19 -5
  64. data/docs/Fake/NCoverParams.htm +19 -5
  65. data/docs/Fake/NUnitHelper.htm +19 -5
  66. data/docs/Fake/NUnitParams.htm +19 -5
  67. data/docs/Fake/PostMethod.htm +19 -5
  68. data/docs/Fake/ProcessHelper.htm +28 -6
  69. data/docs/Fake/Project.htm +19 -5
  70. data/docs/Fake/REST.htm +19 -5
  71. data/docs/Fake/RegexEntry.htm +19 -5
  72. data/docs/Fake/RegistryBaseKey.htm +19 -5
  73. data/docs/Fake/RegistryHelper.htm +19 -5
  74. data/docs/Fake/{BuildError.htm → SCPHelper.htm} +36 -44
  75. data/docs/Fake/{Message.htm → SCPParams.htm} +30 -31
  76. data/docs/Fake/StringHelper.htm +19 -5
  77. data/docs/Fake/Tags.htm +108 -6
  78. data/docs/Fake/TargetHelper.htm +37 -15
  79. data/docs/Fake/TargetTemplate`1.htm +19 -5
  80. data/docs/Fake/TeamCityHelper.htm +28 -6
  81. data/docs/Fake/TeamCityRESTHelper.htm +19 -5
  82. data/docs/Fake/TemplateHelper.htm +19 -5
  83. data/docs/Fake/TestCase.htm +19 -5
  84. data/docs/Fake/TestSuite.htm +19 -5
  85. data/docs/Fake/TimeoutHelper.htm +19 -5
  86. data/docs/Fake/TraceData.htm +404 -0
  87. data/docs/Fake/TraceHelper.htm +27 -34
  88. data/docs/Fake/TraceListener.htm +234 -0
  89. data/docs/Fake/TraceMode.htm +19 -5
  90. data/docs/Fake/VCSRoot.htm +19 -5
  91. data/docs/Fake/VSSHelper.htm +19 -5
  92. data/docs/Fake/WiXHelper.htm +19 -5
  93. data/docs/Fake/WiXParams.htm +19 -5
  94. data/docs/Fake/XCopyHelper.htm +19 -5
  95. data/docs/Fake/XMLHelper.htm +19 -5
  96. data/docs/Fake/XUnitHelper.htm +19 -5
  97. data/docs/Fake/XUnitParams.htm +19 -5
  98. data/docs/Fake/ZipHelper.htm +19 -5
  99. data/docs/Fake/index.htm +32 -8
  100. data/docs/FakeLib/AssemblyInfo.htm +1 -1
  101. data/docs/FakeLib/ReturnException183c26a427ae489c8fd92ec21a0c9a59.htm +1 -1
  102. data/docs/FakeLib/ReturnNoneException183c26a427ae489c8fd92ec21a0c9a59.htm +1 -1
  103. data/docs/FakeLib/index.htm +1 -1
  104. data/docs/index.htm +2 -2
  105. data/lib/FAKE.exe +0 -0
  106. data/lib/Fake.Git.XML +100 -42
  107. data/lib/Fake.Git.dll +0 -0
  108. data/lib/Fake.SQL.dll +0 -0
  109. data/lib/FakeLib.XML +244 -75
  110. data/lib/FakeLib.dll +0 -0
  111. data/lib/docu.exe +0 -0
  112. data/lib/readme.markdown +271 -0
  113. metadata +130 -126
  114. data/lib/readme.txt +0 -65
Binary file
Binary file
@@ -76,6 +76,60 @@
76
76
  </member>
77
77
  <member name="">
78
78
 
79
+ </member>
80
+ <member name="">
81
+
82
+ </member>
83
+ <member name="">
84
+
85
+ </member>
86
+ <member name="">
87
+
88
+ </member>
89
+ <member name="">
90
+
91
+ </member>
92
+ <member name="">
93
+
94
+ </member>
95
+ <member name="">
96
+
97
+ </member>
98
+ <member name="">
99
+
100
+ </member>
101
+ <member name="">
102
+
103
+ </member>
104
+ <member name="">
105
+
106
+ </member>
107
+ <member name="">
108
+
109
+ </member>
110
+ <member name="">
111
+
112
+ </member>
113
+ <member name="">
114
+
115
+ </member>
116
+ <member name="">
117
+
118
+ </member>
119
+ <member name="">
120
+
121
+ </member>
122
+ <member name="">
123
+
124
+ </member>
125
+ <member name="">
126
+
127
+ </member>
128
+ <member name="">
129
+
130
+ </member>
131
+ <member name="">
132
+
79
133
  </member>
80
134
  <member name="M:Fake.AssemblyInfoHelper.AssemblyInfo(Microsoft.FSharp.Core.FSharpFunc`2{Fake.AssemblyInfoHelper.AssemblyInfoParams,Fake.AssemblyInfoHelper.AssemblyInfoParams})">
81
135
  <summary>
@@ -128,11 +182,6 @@
128
182
  The BuildServer type.
129
183
  </summary>
130
184
  </member>
131
- <member name="P:Fake.BuildServerHelper.traceMode">
132
- <summary>
133
- The actual trace mode.
134
- </summary>
135
- </member>
136
185
  <member name="P:Fake.BuildServerHelper.isLocalBuild">
137
186
  <summary>
138
187
  Determines if the current build is a local build.
@@ -169,6 +218,11 @@
169
218
  A constant for local builds
170
219
  </summary>
171
220
  </member>
221
+ <member name="P:Fake.BuildServerHelper.verbose">
222
+ <summary>
223
+ Trace verbose output
224
+ </summary>
225
+ </member>
172
226
  <member name="T:Fake.BuildServerHelper">
173
227
 
174
228
  </member>
@@ -275,11 +329,13 @@
275
329
  </member>
276
330
  <member name="M:Fake.FSIHelper.runBuildScript(System.String,System.Collections.Generic.IEnumerable{System.Tuple`2{System.String,System.String}})">
277
331
  <summary>
278
- Run the buildscript with fsi
332
+ Run the given buildscript with fsi.exe
279
333
  </summary>
280
334
  </member>
281
- <member name="">
282
-
335
+ <member name="P:Fake.FSIHelper.fsiPath">
336
+ <summary>
337
+ The Path to the F# interactive tool
338
+ </summary>
283
339
  </member>
284
340
  <member name="T:Fake.FSIHelper">
285
341
 
@@ -771,6 +827,47 @@
771
827
  </member>
772
828
  <member name="T:Fake.FxCopHelper">
773
829
 
830
+ </member>
831
+ <member name="">
832
+
833
+ </member>
834
+ <member name="">
835
+
836
+ </member>
837
+ <member name="">
838
+
839
+ </member>
840
+ <member name="">
841
+
842
+ </member>
843
+ <member name="">
844
+
845
+ </member>
846
+ <member name="">
847
+
848
+ </member>
849
+ <member name="">
850
+
851
+ </member>
852
+ <member name="">
853
+
854
+ </member>
855
+ <member name="">
856
+
857
+ </member>
858
+ <member name="">
859
+
860
+ </member>
861
+ <member name="">
862
+
863
+ </member>
864
+ <member name="P:Fake.GemHelper.GemDefaults">
865
+ <summary>
866
+ Gem default params
867
+ </summary>
868
+ </member>
869
+ <member name="T:Fake.GemHelper">
870
+
774
871
  </member>
775
872
  <member name="M:Fake.HTMLHelpWorkShopHelper.CompileHTMLHelpProject(System.String,System.String)">
776
873
  <summary>Uses the HTML Help Workshop to compile a help project.</summary>
@@ -815,8 +912,10 @@
815
912
  <member name="">
816
913
 
817
914
  </member>
818
- <member name="">
819
-
915
+ <member name="M:Fake.MSBuild.SpecsRemovement.Nothing``2(``0,``1)">
916
+ <summary>
917
+ A Convetion which matches nothing
918
+ </summary>
820
919
  </member>
821
920
  <member name="M:Fake.MSBuild.SpecsRemovement.AllSpecAndTestDataFiles(System.String,System.String)">
822
921
  <summary>
@@ -851,8 +950,10 @@
851
950
  <member name="">
852
951
 
853
952
  </member>
854
- <member name="">
855
-
953
+ <member name="M:Fake.MSBuild.SpecsRemovement.normalize(System.Xml.Linq.XDocument)">
954
+ <summary>
955
+ Converts a MSBuildProject to XML
956
+ </summary>
856
957
  </member>
857
958
  <member name="T:Fake.MSBuild.SpecsRemovement">
858
959
 
@@ -917,24 +1018,6 @@
917
1018
  </member>
918
1019
  <member name="">
919
1020
 
920
- </member>
921
- <member name="">
922
-
923
- </member>
924
- <member name="">
925
-
926
- </member>
927
- <member name="">
928
-
929
- </member>
930
- <member name="">
931
-
932
- </member>
933
- <member name="">
934
-
935
- </member>
936
- <member name="">
937
-
938
1021
  </member>
939
1022
  <member name="M:Fake.MailBoxHelper.MessageBoxIsEmpty">
940
1023
  <summary>
@@ -946,26 +1029,6 @@
946
1029
  </member>
947
1030
  <member name="">
948
1031
 
949
- </member>
950
- <member name="">
951
-
952
- </member>
953
- <member name="">
954
-
955
- </member>
956
- <member name="">
957
-
958
- </member>
959
- <member name="">
960
-
961
- </member>
962
- <member name="">
963
-
964
- </member>
965
- <member name="P:Fake.MailBoxHelper.verbose">
966
- <summary>
967
- Trace verbose output
968
- </summary>
969
1032
  </member>
970
1033
  <member name="T:Fake.MailBoxHelper">
971
1034
 
@@ -1215,11 +1278,16 @@
1215
1278
  Adds quotes and a blank around the string
1216
1279
  </summary>
1217
1280
  </member>
1218
- <member name="M:Fake.ProcessHelper.quote(System.String)">
1281
+ <member name="M:Fake.ProcessHelper.quoteIfNeeded(System.String)">
1219
1282
  <summary>
1220
1283
  Adds quotes around the string if needed
1221
1284
  </summary>
1222
1285
  </member>
1286
+ <member name="M:Fake.ProcessHelper.quote(System.String)">
1287
+ <summary>
1288
+ Adds quotes around the string
1289
+ </summary>
1290
+ </member>
1223
1291
  <member name="M:Fake.ProcessHelper.execProcess(Microsoft.FSharp.Core.FSharpFunc`2{System.Diagnostics.ProcessStartInfo,Microsoft.FSharp.Core.Unit},System.TimeSpan)">
1224
1292
  <summary>
1225
1293
  Runs the given process
@@ -1348,6 +1416,19 @@
1348
1416
  </member>
1349
1417
  <member name="T:Fake.RegistryHelper">
1350
1418
 
1419
+ </member>
1420
+ <member name="M:Fake.SCPHelper.SCP(Microsoft.FSharp.Core.FSharpFunc`2{Fake.SCPParams,Fake.SCPParams},System.String,System.String)">
1421
+ <summary>Performs a SCP copy.</summary>
1422
+ <param name="source">The source directory (fileName)</param>
1423
+ <param name="destination">The target directory (fileName)</param>
1424
+ </member>
1425
+ <member name="P:Fake.SCPHelper.SCPDefaults">
1426
+ <summary>
1427
+ SCP default params
1428
+ </summary>
1429
+ </member>
1430
+ <member name="T:Fake.SCPHelper">
1431
+
1351
1432
  </member>
1352
1433
  <member name="">
1353
1434
 
@@ -1601,15 +1682,17 @@
1601
1682
  </summary>
1602
1683
  </member>
1603
1684
  <member name="M:Fake.TargetHelper.run(System.String)">
1604
- <summary>
1605
- Runs a Target and its dependencies
1606
- </summary>
1685
+ <summary>Runs a target and its dependencies</summary>
1686
+ <param name="targetName">The target to run.</param>
1607
1687
  </member>
1608
- <member name="">
1609
-
1688
+ <member name="M:Fake.TargetHelper.WriteTaskTimeSummary``1(``0)">
1689
+ <summary>Writes a build time report.</summary>
1690
+ <param name="total">The total runtime.</param>
1610
1691
  </member>
1611
- <member name="">
1612
-
1692
+ <member name="M:Fake.TargetHelper.PrintDependencyGraph(System.Boolean,System.String)">
1693
+ <summary>Writes a dependency graph.</summary>
1694
+ <param name="verbose">Whether to print verbose output or not.</param>
1695
+ <param name="target">The target for which the dependencies should be printed.</param>
1613
1696
  </member>
1614
1697
  <member name="M:Fake.TargetHelper.runFinalTargets">
1615
1698
  <summary>
@@ -1798,6 +1881,11 @@
1798
1881
  Send message to TeamCity
1799
1882
  </summary>
1800
1883
  </member>
1884
+ <member name="M:Fake.TeamCityHelper.EncapsulateSpecialChars(System.String)">
1885
+ <summary>
1886
+ Encapsulates special chars
1887
+ </summary>
1888
+ </member>
1801
1889
  <member name="T:Fake.TeamCityHelper">
1802
1890
 
1803
1891
  </member>
@@ -2007,7 +2095,7 @@
2007
2095
  </member>
2008
2096
  <member name="M:Fake.TraceHelper.traceImportant(System.String)">
2009
2097
  <summary>
2010
- Writes a trace to stderr (in green)
2098
+ Writes a trace to stderr (in yellow)
2011
2099
  </summary>
2012
2100
  </member>
2013
2101
  <member name="M:Fake.TraceHelper.traceVerbose(System.String)">
@@ -2030,11 +2118,6 @@
2030
2118
  Writes a trace to the command line (in green)
2031
2119
  </summary>
2032
2120
  </member>
2033
- <member name="M:Fake.TraceHelper.logColored(System.Boolean,System.ConsoleColor,System.Boolean,System.String)">
2034
- <summary>
2035
- Writes a trace output to the message buffer (in the given color)
2036
- </summary>
2037
- </member>
2038
2121
  <member name="M:Fake.TraceHelper.logVerbosefn``1(Microsoft.FSharp.Core.PrintfFormat{``0,Microsoft.FSharp.Core.Unit,System.String,Microsoft.FSharp.Core.Unit})">
2039
2122
  <summary>
2040
2123
  Logs the specified string if the verbose mode is activated.
@@ -2050,21 +2133,11 @@
2050
2133
  Logs the specified message
2051
2134
  </summary>
2052
2135
  </member>
2053
- <member name="P:Fake.TraceHelper.log">
2136
+ <member name="M:Fake.TraceHelper.log(System.String)">
2054
2137
  <summary>
2055
2138
  Logs the specified string
2056
2139
  </summary>
2057
2140
  </member>
2058
- <member name="M:Fake.TraceHelper.logMessage(System.Boolean,System.Boolean,System.String)">
2059
- <summary>
2060
- Logs the specified string (via message buffer)
2061
- </summary>
2062
- </member>
2063
- <member name="M:Fake.TraceHelper.xmlMessage(System.String)">
2064
- <summary>
2065
- Writes a XML message to the bufffer.
2066
- </summary>
2067
- </member>
2068
2141
  <member name="M:Fake.TraceHelper.WaitUntilEverythingIsPrinted">
2069
2142
  <summary>
2070
2143
  Waits until the message queue is empty
@@ -2091,6 +2164,102 @@
2091
2164
  </member>
2092
2165
  <member name="">
2093
2166
 
2167
+ </member>
2168
+ <member name="M:Fake.TraceListener.NAntXmlTraceListener.Fake-TraceListener-ITraceListener-Write(Fake.TraceListener.TraceData)">
2169
+ <summary>
2170
+ Writes the given message to the xml file.
2171
+ </summary>
2172
+ </member>
2173
+ <member name="">
2174
+
2175
+ </member>
2176
+ <member name="T:Fake.TraceListener.NAntXmlTraceListener">
2177
+ <summary>Implements a TraceListener which writes NAnt like XML files.</summary>
2178
+ <param name="xmlOutputFile">Defines the xml output file.</param>
2179
+ </member>
2180
+ <member name="">
2181
+
2182
+ </member>
2183
+ <member name="">
2184
+
2185
+ </member>
2186
+ <member name="M:Fake.TraceListener.ConsoleTraceListener.Fake-TraceListener-ITraceListener-Write(Fake.TraceListener.TraceData)">
2187
+ <summary>
2188
+ Writes the given message to the Console.
2189
+ </summary>
2190
+ </member>
2191
+ <member name="">
2192
+
2193
+ </member>
2194
+ <member name="T:Fake.TraceListener.ConsoleTraceListener">
2195
+ <summary>Implements a TraceListener for System.Console</summary>
2196
+ <param name="importantMessagesToStdErr">Defines whether to trace important messages to StdErr.</param>
2197
+ <param name="colorMap">A function which maps TracePriorities to ConsoleColors.</param>
2198
+ </member>
2199
+ <member name="">
2200
+
2201
+ </member>
2202
+ <member name="T:Fake.TraceListener.ITraceListener">
2203
+ <summary>
2204
+ Defines a TraceListener interface
2205
+ </summary>
2206
+ </member>
2207
+ <member name="">
2208
+
2209
+ </member>
2210
+ <member name="">
2211
+
2212
+ </member>
2213
+ <member name="">
2214
+
2215
+ </member>
2216
+ <member name="">
2217
+
2218
+ </member>
2219
+ <member name="">
2220
+
2221
+ </member>
2222
+ <member name="">
2223
+
2224
+ </member>
2225
+ <member name="">
2226
+
2227
+ </member>
2228
+ <member name="">
2229
+
2230
+ </member>
2231
+ <member name="T:Fake.TraceListener.TraceData">
2232
+ <summary>
2233
+ Defines Tracing information for TraceListeners
2234
+ </summary>
2235
+ </member>
2236
+ <member name="">
2237
+
2238
+ </member>
2239
+ <member name="">
2240
+
2241
+ </member>
2242
+ <member name="">
2243
+
2244
+ </member>
2245
+ <member name="P:Fake.TraceListener.defaultConsoleTraceListener">
2246
+ <summary>
2247
+ The default TraceListener for Console
2248
+ </summary>
2249
+ </member>
2250
+ <member name="M:Fake.TraceListener.colorMap(Fake.TraceListener.TraceData)">
2251
+ <summary>
2252
+ Maps TracePriorities to ConsoleColors
2253
+ </summary>
2254
+ </member>
2255
+ <member name="T:Fake.TraceListener">
2256
+
2257
+ </member>
2258
+ <member name="">
2259
+
2260
+ </member>
2261
+ <member name="">
2262
+
2094
2263
  </member>
2095
2264
  <member name="T:Fake.VSSHelper">
2096
2265
 
Binary file
Binary file
@@ -0,0 +1,271 @@
1
+ # What is "FAKE - F# Make"?
2
+
3
+ ## Mailing list
4
+
5
+ The "FAKE - F# Make" mailing list can be found at [http://groups.google.com/group/fsharpMake](http://groups.google.com/group/fsharpMake).
6
+
7
+ ## Introduction
8
+
9
+ Modern build automation systems are not limited to simply recompile programs if source code has changed.
10
+ They are supposed to get the latest sources from a source code management system, build test databases,
11
+ run automatic tests, check guidelines, create documentation files, install setup projects and much more.
12
+ Some companies are even deploying virtual machines, which are created during a nightly build process.
13
+ In order to simplify the writing of such build scripts and to provide reusability of common tasks
14
+ most build automation systems are using a domain-specific language (DSL).
15
+ These tools can be divided into tools using external DSLs with a custom syntax like **make**,
16
+ tools using external DSLs with an XML based syntax like **MSBuild** or **Apache Ant** and
17
+ tools using internal DSLs which are integrated in a host language like **Rake**, which uses Ruby.
18
+
19
+ ## FAKE - An integrated DSL
20
+
21
+ "FAKE - F# Make" is a build automation system, which is intended to combine the advantages
22
+ of the above mentioned tools but to provide a better tooling support.
23
+ Due to its integration in F#, all benefits of the .NET Framework and functional programming can be used,
24
+ including the extensive class library, powerful debuggers and integrated development environments
25
+ like Visual Studio 2008 or SharpDevelop, which provide syntax highlighting and code completion.
26
+
27
+ The new language was designed to be succinct, typed, declarative, extensible and easy to use.
28
+ For instance custom build tasks can be added simply by referencing .NET assemblies and using the corresponding classes.
29
+
30
+ ## Articles
31
+
32
+ * [Getting started with "FAKE - F# Make"](http://www.navision-blog.de/2009/04/01/getting-started-with-fake-a-f-sharp-make-tool): This tutorial shows you how to build the CalculatorSample project.
33
+ * [Adding FxCop to a "FAKE" build script](http://www.navision-blog.de/2009/04/02/adding-fxcop-to-a-fake-build-script)
34
+ * [Debugging "FAKE - F# Make" build scripts](http://www.navision-blog.de/2009/04/05/debugging-fake-f-make-build-scripts)
35
+ * [Modifying AssemblyInfo and Version via "FAKE - F# Make"](http://www.navision-blog.de/2009/04/04/modifying-assemblyinfo-and-version-via-fake-f-make)
36
+ * [Writing custom tasks for "FAKE - F# Make"](http://www.navision-blog.de/2009/04/14/writing-custom-tasks-for-fake-f-make)
37
+ * [Integrating a "FAKE - F# Make" build script into TeamCity](http://www.navision-blog.de/2009/04/15/integrate-a-fake-f-make-build-script-into-teamcity)
38
+ * [Integrating a "FAKE - F# Make" build script into CruiseControl.NET](http://www.navision-blog.de/2009/10/14/integrating-a-fake-f-make-build-script-into-cruisecontrol-net)
39
+
40
+ ## Main Features
41
+
42
+ * Simple build infrastructure
43
+ * Easy systax
44
+ * Full power of .NET Framework
45
+ * Simple [TeamCity](http://www.jetbrains.com/teamcity) integration (see [Integrating a "FAKE - F# Make" build script into TeamCity](http://www.navision-blog.de/2009/04/15/integrate-a-fake-f-make-build-script-into-teamcity))
46
+ * Simple CruiseControl.NET integration (see [Integrating a "FAKE - F# Make" build script into CruiseControl.NET](http://www.navision-blog.de/2009/10/14/integrating-a-fake-f-make-build-script-into-cruisecontrol-net))
47
+ * FinalTarget feature (to release resources even if build fails)
48
+ * Extensible platform - [Write your own tasks](http://www.navision-blog.de/2009/04/14/writing-custom-tasks-for-fake-f-make)
49
+ * Easy debugging
50
+ * Intellisense support (when using Visual Studio)
51
+
52
+ ## Predefined tasks
53
+
54
+ * Clean task
55
+ * [NUnit](http://www.nunit.org) support
56
+ * [xUnit.net](http://www.codeplex.com/xunit) support
57
+ * NCover support
58
+ * FxCop support
59
+ * ExecProcess task (To run tools via the command line)
60
+ * MSBuild task (to compile *.csproj and *.fsproj projects or run MSBuild scripts)
61
+ * XMLRead task
62
+ * VSS task (Get sources from Visual Source Safe)
63
+ * XCopy task
64
+ * Zip task
65
+ * [git](http://git-scm.com/) tasks
66
+ * AssemblyInfo task
67
+
68
+ # Using FAKE
69
+
70
+ ## Targets
71
+
72
+ Targets are the main unit of work in a "FAKE - F# Make" script.
73
+ Targets have a name (usually given as a symbol or a string) and a action (given as a code block).
74
+
75
+ // The clean target cleans the build and deploy folders
76
+ Target? Clean <-
77
+ fun _ ->
78
+ CleanDir "./build/"
79
+ CleanDir "./deploy/"
80
+
81
+ ### Dependencies
82
+
83
+ You can define prerequisites for tasks:
84
+
85
+ // Target Default is dependent from target Clean and BuildApp
86
+ // "FAKE - F# Make" will run these targets before Default
87
+ "Default" <== ["Clean"; "BuildApp"]
88
+
89
+ There is also an alternative syntax for dependencies:
90
+
91
+ // Target Default is dependent from target Clean and BuildApp
92
+ // "FAKE - F# Make" will run these targets before Default
93
+ For? Default <-
94
+ Dependency? Clean
95
+ |> And? BuildApp
96
+
97
+ ### Running targets
98
+
99
+ You can execute targets with the "run"-command:
100
+
101
+ // Executes Default target
102
+ Run? Default
103
+
104
+ ### Final targets
105
+
106
+ Final target can be used for TearDown functionality.
107
+ These targets will be executed even if the build fails but have to be activated via ActivateFinalTarget().
108
+
109
+ // FinalTarget will be excuted even if build fails
110
+ FinalTarget? CloseSomePrograms <-
111
+ fun _ ->
112
+ // close stuff and release resources
113
+
114
+
115
+ // Activate FinalTarget somewhere during build
116
+ ActivateFinalTarget? CloseSomePrograms
117
+
118
+ ## FileSets
119
+
120
+ "FAKE - F# Make" uses similar include and exclude patterns as NAnt and MSBuild.
121
+
122
+ ### File includes
123
+
124
+ // Includes all *.csproj files under /src/app by using the !+ operator
125
+ !+ "src/app/**/*.csproj"
126
+
127
+ // Includes all *.csproj files under /src/app and /test with the ++ operator
128
+ !+ "src/app/**/*.csproj"
129
+ ++ "test/**/*.csproj"
130
+
131
+ ### File excludes
132
+
133
+ // Includes all files under /src/app but excludes *.zip files
134
+ !+ "src/app/**/*.*"
135
+ -- "*.zip"
136
+
137
+ ### Scan vs. ScanImmediately
138
+
139
+ "FAKE - F# Make" provides two scan methods: Scan() and ScanImmediately().
140
+
141
+ Scan is a lazy method and evaluates the FileSet as late as possible ("on-demand").
142
+ If the FileSet is used twice, it will be reevaluated.
143
+
144
+ The following code defines a lazy FileSet:
145
+
146
+ // Includes all *.csproj files under /src/app and scans them lazy
147
+ let apps =
148
+ !+ "src/app/**/*.csproj"
149
+ |> Scan
150
+
151
+ ScanImmediately() scans the FileSet immediatly at time of its definition
152
+ and memoizes it.
153
+
154
+ // Includes all files under /src/app but excludes *.zip files
155
+ // eager scan ==> All files memoized at the time of this definition
156
+ let files =
157
+ !+ "src/app/**/*.csproj"
158
+ -- "*.zip"
159
+ |> ScanImmediately
160
+
161
+ ## UnitTests
162
+
163
+ ### NUnit
164
+
165
+ // define test dlls
166
+ let testDlls = !+ (testDir + @"/Test.*.dll") |> Scan
167
+
168
+ Target? NUnitTest <-
169
+ fun _ ->
170
+ testDlls
171
+ |> NUnit (fun p ->
172
+ {p with
173
+ ToolPath = nunitPath;
174
+ DisableShadowCopy = true;
175
+ OutputFile = testDir + "TestResults.xml"})
176
+
177
+ ### xUnit.net
178
+
179
+ // define test dlls
180
+ let testDlls = !+ (testDir + @"/Test.*.dll") |> Scan
181
+
182
+ Target? xUnitTest <-
183
+ fun _ ->
184
+ testDlls
185
+ |> xUnit (fun p ->
186
+ {p with
187
+ ShadowCopy = false;
188
+ HtmlPrefix = testDir})
189
+
190
+ ## Sample script
191
+
192
+ This sample script
193
+
194
+ * Assumes "FAKE - F# Make" is located at ./tools/FAKE
195
+ * Assumes NUnit is located at ./tools/NUnit
196
+ * Cleans the build and deploy paths
197
+ * Builds all C# projects below src/app/ and puts the output to .\build
198
+ * Builds all NUnit test projects below src/test/ and puts the output to .\build
199
+ * Uses NUnit to test the generated Test.*.dll's
200
+ * Zips all generated files to deploy\MyProject-0.1.zip
201
+
202
+ You can read [Getting started with FAKE](http://www.navision-blog.de/2009/04/01/getting-started-with-fake-a-f-sharp-make-tool) to build such a script.
203
+
204
+ // Include FAKE libraries
205
+ #I @"tools\FAKE"
206
+ #r "FakeLib.dll"
207
+ open Fake
208
+
209
+ // properties
210
+ let projectName = "MyProject"
211
+ let version = "0.1"
212
+ let buildDir = "./build/"
213
+ let deployDir = "./deploy/"
214
+ let nunitPath = "./tools/NUnit/bin"
215
+ let nunitOutput = buildDir + "TestResults.xml"
216
+ let zipFileName = deployDir + sprintf "%s-%s.zip" projectName version
217
+
218
+ // files
219
+ let appReferences = !+ "src/app/**/*.csproj" |> Scan
220
+ let testReferences = !+ "src/test/**/*.csproj" |> Scan
221
+ let testDlls = !+ (buildDir + "*.Test.dll") |> Scan
222
+ let filesToZip =
223
+ !+ (buildDir + "/**/*.*")
224
+ -- "*.zip"
225
+ |> Scan
226
+
227
+ // Targets
228
+
229
+ Target? Clean <-
230
+ fun _ ->
231
+ CleanDir buildDir
232
+ CleanDir deployDir
233
+
234
+ Target? BuildApp <-
235
+ fun _ ->
236
+ appReferences
237
+ |> MSBuildRelease buildDir "Build"
238
+ |> Log "AppBuild-Output: "
239
+
240
+ Target? BuildTest <-
241
+ fun _ ->
242
+ testReferences
243
+ |> MSBuildDebug buildDir "Build"
244
+ |> Log "TestBuild-Output: "
245
+
246
+ Target? Test <-
247
+ fun _ ->
248
+ testDlls
249
+ |> NUnit (fun p ->
250
+ {p with
251
+ ToolPath = nunitPath;
252
+ DisableShadowCopy = true;
253
+ OutputFile = nunitOutput})
254
+
255
+ Target? BuildZip <-
256
+ fun _ -> Zip buildDir zipFileName filesToZip
257
+
258
+ Target? Default <- DoNothing
259
+
260
+ // Dependencies
261
+ For? BuildApp <- Dependency? Clean
262
+
263
+ For? Test <-
264
+ Dependency? BuildApp
265
+ |> And? BuildTest
266
+
267
+ For? BuildZip <- Dependency? Test
268
+ For? Default <- Dependency? BuildZip
269
+
270
+ // start build
271
+ Run? Default