uppercutbuild 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. data/lib/NDepend.xml +251 -0
  2. data/lib/build.bat +32 -0
  3. data/lib/build/Castle.Core.dll +0 -0
  4. data/lib/build/Castle.DynamicProxy2.dll +0 -0
  5. data/lib/build/Castle.MicroKernel.dll +0 -0
  6. data/lib/build/Castle.Windsor.dll +0 -0
  7. data/lib/build/UppercuT.xml +5 -0
  8. data/lib/build/analyze.step +78 -0
  9. data/lib/build/analyzers/gallio.test.step +145 -0
  10. data/lib/build/analyzers/mbunit2.test.step +146 -0
  11. data/lib/build/analyzers/moma.step +143 -0
  12. data/lib/build/analyzers/ncover.step +186 -0
  13. data/lib/build/analyzers/ndepend.step +95 -0
  14. data/lib/build/analyzers/nitriq.step +116 -0
  15. data/lib/build/analyzers/nunit.test.step +172 -0
  16. data/lib/build/analyzers/test.step +99 -0
  17. data/lib/build/compile.step +178 -0
  18. data/lib/build/customize.bat +41 -0
  19. data/lib/build/customize.build +76 -0
  20. data/lib/build/customizers/item.template +50 -0
  21. data/lib/build/default.build +164 -0
  22. data/lib/build/deploymentBuilder.step +103 -0
  23. data/lib/build/environmentBuilder.step +119 -0
  24. data/lib/build/generateBuildInfo.step +106 -0
  25. data/lib/build/ilmerge.build +174 -0
  26. data/lib/build/open.build +103 -0
  27. data/lib/build/package.step +234 -0
  28. data/lib/build/policyChecks.step +81 -0
  29. data/lib/build/updateAssemblies.build +107 -0
  30. data/lib/build/uppercut.dll +0 -0
  31. data/lib/build/uppercut.tasks.dll +0 -0
  32. data/lib/build/versionBuilder.step +148 -0
  33. data/lib/build/versioners/git.step +106 -0
  34. data/lib/build/versioners/hg.step +106 -0
  35. data/lib/build/versioners/svn.step +112 -0
  36. data/lib/build/versioners/tfs.step +104 -0
  37. data/lib/build/zip.build +162 -0
  38. data/lib/deployment/scripts/database.deploy +37 -0
  39. data/lib/deployment/templates/AppDeployment.bat +9 -0
  40. data/lib/deployment/templates/DBDeployment.RESTORE.bat +9 -0
  41. data/lib/deployment/templates/DBDeployment.bat +9 -0
  42. data/lib/lib/MbUnit2/MbUnit.AddIn.dll +0 -0
  43. data/lib/lib/MbUnit2/MbUnit.Cons.exe +0 -0
  44. data/lib/lib/MbUnit2/MbUnit.Cons.exe.config +12 -0
  45. data/lib/lib/MbUnit2/MbUnit.Framework.2.0.dll +0 -0
  46. data/lib/lib/MbUnit2/MbUnit.Framework.XML +6929 -0
  47. data/lib/lib/MbUnit2/MbUnit.Framework.dll +0 -0
  48. data/lib/lib/MbUnit2/MbUnit.GUI.exe +0 -0
  49. data/lib/lib/MbUnit2/MbUnit.GUI.exe.config +14 -0
  50. data/lib/lib/MbUnit2/MbUnit.MSBuild.Tasks.dll +0 -0
  51. data/lib/lib/MbUnit2/NAnt.Core.dll +0 -0
  52. data/lib/lib/MbUnit2/NGraphviz.Helpers.dll +0 -0
  53. data/lib/lib/MbUnit2/NGraphviz.Layout.dll +0 -0
  54. data/lib/lib/MbUnit2/NGraphviz.dll +0 -0
  55. data/lib/lib/MbUnit2/QuickGraph.Algorithms.Graphviz.dll +0 -0
  56. data/lib/lib/MbUnit2/QuickGraph.Algorithms.dll +0 -0
  57. data/lib/lib/MbUnit2/QuickGraph.dll +0 -0
  58. data/lib/lib/MbUnit2/Refly.dll +0 -0
  59. data/lib/lib/MbUnit2/TestDriven.Framework.dll +0 -0
  60. data/lib/lib/MbUnit2/TestFu.XML +1932 -0
  61. data/lib/lib/MbUnit2/TestFu.dll +0 -0
  62. data/lib/lib/MbUnit2/XsdTidy.exe +0 -0
  63. data/lib/lib/MoMA/Definitions/2.4.0.1-defs.zip +0 -0
  64. data/lib/lib/MoMA/ICSharpCode.SharpZipLib.dll +0 -0
  65. data/lib/lib/MoMA/MoMA.Analyzer.dll +0 -0
  66. data/lib/lib/MoMA/MoMA.exe +0 -0
  67. data/lib/lib/MoMA/Mono.Cecil.dll +0 -0
  68. data/lib/lib/MoMA/Reports/Media/fail.png +0 -0
  69. data/lib/lib/MoMA/Reports/Media/minus.png +0 -0
  70. data/lib/lib/MoMA/Reports/Media/moma.css +117 -0
  71. data/lib/lib/MoMA/Reports/Media/moma.js +17 -0
  72. data/lib/lib/MoMA/Reports/Media/pass.png +0 -0
  73. data/lib/lib/MoMA/Reports/Media/plus.png +0 -0
  74. data/lib/lib/MoMA/Resources/button_ok.png +0 -0
  75. data/lib/lib/MoMA/Resources/dialog-warning.png +0 -0
  76. data/lib/lib/MoMA/Resources/dialogback.png +0 -0
  77. data/lib/lib/MoMA/Resources/list-add.png +0 -0
  78. data/lib/lib/MoMA/Resources/list-directory.png +0 -0
  79. data/lib/lib/MoMA/Resources/list-remove.png +0 -0
  80. data/lib/lib/MoMA/Resources/monoback.png +0 -0
  81. data/lib/lib/MoMA/Resources/spinner.gif +0 -0
  82. data/lib/lib/NAnt/CollectionGen.dll +0 -0
  83. data/lib/lib/NAnt/Interop.MsmMergeTypeLib.dll +0 -0
  84. data/lib/lib/NAnt/Interop.StarTeam.dll +0 -0
  85. data/lib/lib/NAnt/Interop.WindowsInstaller.dll +0 -0
  86. data/lib/lib/NAnt/MSITaskErrors.mst +0 -0
  87. data/lib/lib/NAnt/MSITaskTemplate.msi +0 -0
  88. data/lib/lib/NAnt/MSMTaskErrors.mst +0 -0
  89. data/lib/lib/NAnt/MSMTaskTemplate.msm +0 -0
  90. data/lib/lib/NAnt/MbUnit.Framework.dll +0 -0
  91. data/lib/lib/NAnt/MbUnit.Tasks.dll +0 -0
  92. data/lib/lib/NAnt/NAnt.CompressionTasks.dll +0 -0
  93. data/lib/lib/NAnt/NAnt.Contrib.Tasks.dll +0 -0
  94. data/lib/lib/NAnt/NAnt.Core.dll +0 -0
  95. data/lib/lib/NAnt/NAnt.DotNetTasks.dll +0 -0
  96. data/lib/lib/NAnt/NAnt.MSNetTasks.dll +0 -0
  97. data/lib/lib/NAnt/NAnt.NUnit.dll +0 -0
  98. data/lib/lib/NAnt/NAnt.NUnit1Tasks.dll +0 -0
  99. data/lib/lib/NAnt/NAnt.NUnit2Tasks.dll +0 -0
  100. data/lib/lib/NAnt/NAnt.SourceControlTasks.dll +0 -0
  101. data/lib/lib/NAnt/NAnt.VSNetTasks.dll +0 -0
  102. data/lib/lib/NAnt/NAnt.VisualCppTasks.dll +0 -0
  103. data/lib/lib/NAnt/NAnt.Win32Tasks.dll +0 -0
  104. data/lib/lib/NAnt/NAnt.exe +0 -0
  105. data/lib/lib/NAnt/NAnt.exe.config +2126 -0
  106. data/lib/lib/NAnt/NCoverExplorer.NAntTasks.dll +0 -0
  107. data/lib/lib/NAnt/NDepend.Build.NAntTasks.dll +0 -0
  108. data/lib/lib/NAnt/NDoc.Documenter.NAnt.dll +0 -0
  109. data/lib/lib/NAnt/QuickGraph.Algorithms.dll +0 -0
  110. data/lib/lib/NAnt/QuickGraph.dll +0 -0
  111. data/lib/lib/NAnt/SLiNgshoT.Core.dll +0 -0
  112. data/lib/lib/NAnt/SLiNgshoT.exe +0 -0
  113. data/lib/lib/NAnt/SourceSafe.Interop.dll +0 -0
  114. data/lib/lib/NAnt/ThoughtWorks.CruiseControl.MSBuild.dll +0 -0
  115. data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.dll +0 -0
  116. data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.xml +36 -0
  117. data/lib/lib/NAnt/lib/common/1.1/nunit-console-runner.dll +0 -0
  118. data/lib/lib/NAnt/lib/common/1.1/nunit-console.exe +0 -0
  119. data/lib/lib/NAnt/lib/common/1.1/nunit.core.dll +0 -0
  120. data/lib/lib/NAnt/lib/common/1.1/nunit.framework.dll +0 -0
  121. data/lib/lib/NAnt/lib/common/1.1/nunit.util.dll +0 -0
  122. data/lib/lib/NAnt/lib/common/2.0/nunit-console-runner.dll +0 -0
  123. data/lib/lib/NAnt/lib/common/2.0/nunit-console.exe +0 -0
  124. data/lib/lib/NAnt/lib/common/2.0/nunit.core.dll +0 -0
  125. data/lib/lib/NAnt/lib/common/2.0/nunit.framework.dll +0 -0
  126. data/lib/lib/NAnt/lib/common/2.0/nunit.util.dll +0 -0
  127. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll +0 -0
  128. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.dll +0 -0
  129. data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpZipLib.dll +0 -0
  130. data/lib/lib/NAnt/lib/common/neutral/NDoc.Core.dll +0 -0
  131. data/lib/lib/NAnt/lib/common/neutral/NDoc.Documenter.Msdn.dll +0 -0
  132. data/lib/lib/NAnt/lib/common/neutral/NDoc.ExtendedUI.dll +0 -0
  133. data/lib/lib/NAnt/lib/common/neutral/NUnitCore.dll +0 -0
  134. data/lib/lib/NAnt/lib/mono/1.0/NDoc.Core.dll +0 -0
  135. data/lib/lib/NAnt/lib/mono/1.0/NDoc.Documenter.Msdn.dll +0 -0
  136. data/lib/lib/NAnt/lib/mono/1.0/NDoc.ExtendedUI.dll +0 -0
  137. data/lib/lib/NAnt/lib/mono/1.0/nunit.core.dll +0 -0
  138. data/lib/lib/NAnt/lib/mono/1.0/nunit.framework.dll +0 -0
  139. data/lib/lib/NAnt/lib/mono/1.0/nunit.util.dll +0 -0
  140. data/lib/lib/NAnt/lib/mono/2.0/NDoc.Core.dll +0 -0
  141. data/lib/lib/NAnt/lib/mono/2.0/NDoc.Documenter.Msdn.dll +0 -0
  142. data/lib/lib/NAnt/lib/mono/2.0/NDoc.ExtendedUI.dll +0 -0
  143. data/lib/lib/NAnt/lib/mono/2.0/nunit.core.dll +0 -0
  144. data/lib/lib/NAnt/lib/mono/2.0/nunit.framework.dll +0 -0
  145. data/lib/lib/NAnt/lib/mono/2.0/nunit.util.dll +0 -0
  146. data/lib/lib/NAnt/lib/net/1.0/NDoc.Core.dll +0 -0
  147. data/lib/lib/NAnt/lib/net/1.0/NDoc.Documenter.Msdn.dll +0 -0
  148. data/lib/lib/NAnt/lib/net/1.0/NDoc.ExtendedUI.dll +0 -0
  149. data/lib/lib/NAnt/lib/net/1.0/nunit-console-runner.dll +0 -0
  150. data/lib/lib/NAnt/lib/net/1.0/nunit-console.exe +0 -0
  151. data/lib/lib/NAnt/lib/net/1.0/nunit.core.dll +0 -0
  152. data/lib/lib/NAnt/lib/net/1.0/nunit.framework.dll +0 -0
  153. data/lib/lib/NAnt/lib/net/1.0/nunit.util.dll +0 -0
  154. data/lib/lib/NAnt/lib/net/1.1/NDoc.Core.dll +0 -0
  155. data/lib/lib/NAnt/lib/net/1.1/NDoc.Documenter.Msdn.dll +0 -0
  156. data/lib/lib/NAnt/lib/net/1.1/NDoc.ExtendedUI.dll +0 -0
  157. data/lib/lib/NAnt/lib/net/1.1/nunit.core.dll +0 -0
  158. data/lib/lib/NAnt/lib/net/1.1/nunit.framework.dll +0 -0
  159. data/lib/lib/NAnt/lib/net/1.1/nunit.util.dll +0 -0
  160. data/lib/lib/NAnt/lib/net/2.0/NDoc.Core.dll +0 -0
  161. data/lib/lib/NAnt/lib/net/2.0/NDoc.Documenter.Msdn.dll +0 -0
  162. data/lib/lib/NAnt/lib/net/2.0/NDoc.ExtendedUI.dll +0 -0
  163. data/lib/lib/NAnt/lib/net/2.0/nunit.core.dll +0 -0
  164. data/lib/lib/NAnt/lib/net/2.0/nunit.framework.dll +0 -0
  165. data/lib/lib/NAnt/lib/net/2.0/nunit.util.dll +0 -0
  166. data/lib/lib/NAnt/log4net.dll +0 -0
  167. data/lib/lib/NAnt/scvs.exe +0 -0
  168. data/lib/lib/NCover/ActiproEULA.html +287 -0
  169. data/lib/lib/NCover/ActiproSoftware.Shared.Net11.dll +0 -0
  170. data/lib/lib/NCover/ActiproSoftware.SyntaxEditor.Net11.dll +0 -0
  171. data/lib/lib/NCover/ActiproSoftware.WinUICore.Net11.dll +0 -0
  172. data/lib/lib/NCover/CommandBars.dll +0 -0
  173. data/lib/lib/NCover/ConsoleConfig.xsd +123 -0
  174. data/lib/lib/NCover/ConsoleExample.config +94 -0
  175. data/lib/lib/NCover/CoverLib.dll +0 -0
  176. data/lib/lib/NCover/Coverage.xsl +339 -0
  177. data/lib/lib/NCover/CoverageReport.xsl +468 -0
  178. data/lib/lib/NCover/ICSharpCode.TextEditor.dll +0 -0
  179. data/lib/lib/NCover/LicencePersonal.rtf +334 -0
  180. data/lib/lib/NCover/MSVCP80.dll +0 -0
  181. data/lib/lib/NCover/MSVCR80.dll +0 -0
  182. data/lib/lib/NCover/Microsoft.VC80.CRT.manifest +8 -0
  183. data/lib/lib/NCover/NCover.Console.exe +0 -0
  184. data/lib/lib/NCover/NCover.Console.exe.config +6 -0
  185. data/lib/lib/NCover/NCover.Framework.dll +0 -0
  186. data/lib/lib/NCover/NCoverExplorer.Console.exe +0 -0
  187. data/lib/lib/NCover/NCoverExplorer.Core.dll +0 -0
  188. data/lib/lib/NCover/NCoverExplorer.NCoverRunner.dll +0 -0
  189. data/lib/lib/NCover/NCoverExplorer.WinForms.dll +0 -0
  190. data/lib/lib/NCover/NCoverExplorer.exe +0 -0
  191. data/lib/lib/NCover/NCoverExplorer.exe.config +8 -0
  192. data/lib/lib/NCover/NCoverExplorerFAQ.html +303 -0
  193. data/lib/lib/NCover/NCoverExplorerReleaseNotes.html +874 -0
  194. data/lib/lib/NCover/NCoverFAQ.html +429 -0
  195. data/lib/lib/NCover/VC80CRT.MAN +15 -0
  196. data/lib/lib/NCover/license.txt +299 -0
  197. data/lib/lib/NUnit/NUnitTests.config +84 -0
  198. data/lib/lib/NUnit/NUnitTests.nunit +14 -0
  199. data/lib/lib/NUnit/agent.conf +4 -0
  200. data/lib/lib/NUnit/agent.log.conf +18 -0
  201. data/lib/lib/NUnit/framework/nunit.framework.dll +0 -0
  202. data/lib/lib/NUnit/framework/nunit.framework.xml +10113 -0
  203. data/lib/lib/NUnit/framework/nunit.mocks.dll +0 -0
  204. data/lib/lib/NUnit/framework/pnunit.framework.dll +0 -0
  205. data/lib/lib/NUnit/launcher.log.conf +18 -0
  206. data/lib/lib/NUnit/lib/Failure.png +0 -0
  207. data/lib/lib/NUnit/lib/Ignored.png +0 -0
  208. data/lib/lib/NUnit/lib/Inconclusive.png +0 -0
  209. data/lib/lib/NUnit/lib/Skipped.png +0 -0
  210. data/lib/lib/NUnit/lib/Success.png +0 -0
  211. data/lib/lib/NUnit/lib/fit.dll +0 -0
  212. data/lib/lib/NUnit/lib/log4net.dll +0 -0
  213. data/lib/lib/NUnit/lib/nunit-console-runner.dll +0 -0
  214. data/lib/lib/NUnit/lib/nunit-gui-runner.dll +0 -0
  215. data/lib/lib/NUnit/lib/nunit.core.dll +0 -0
  216. data/lib/lib/NUnit/lib/nunit.core.interfaces.dll +0 -0
  217. data/lib/lib/NUnit/lib/nunit.fixtures.dll +0 -0
  218. data/lib/lib/NUnit/lib/nunit.uiexception.dll +0 -0
  219. data/lib/lib/NUnit/lib/nunit.uikit.dll +0 -0
  220. data/lib/lib/NUnit/lib/nunit.util.dll +0 -0
  221. data/lib/lib/NUnit/nunit-agent-x86.exe +0 -0
  222. data/lib/lib/NUnit/nunit-agent-x86.exe.config +76 -0
  223. data/lib/lib/NUnit/nunit-agent.exe +0 -0
  224. data/lib/lib/NUnit/nunit-agent.exe.config +76 -0
  225. data/lib/lib/NUnit/nunit-console-x86.exe +0 -0
  226. data/lib/lib/NUnit/nunit-console-x86.exe.config +76 -0
  227. data/lib/lib/NUnit/nunit-console.exe +0 -0
  228. data/lib/lib/NUnit/nunit-console.exe.config +76 -0
  229. data/lib/lib/NUnit/nunit-x86.exe +0 -0
  230. data/lib/lib/NUnit/nunit-x86.exe.config +91 -0
  231. data/lib/lib/NUnit/nunit.exe +0 -0
  232. data/lib/lib/NUnit/nunit.exe.config +91 -0
  233. data/lib/lib/NUnit/nunit.framework.dll +0 -0
  234. data/lib/lib/NUnit/pnunit-agent.exe +0 -0
  235. data/lib/lib/NUnit/pnunit-agent.exe.config +77 -0
  236. data/lib/lib/NUnit/pnunit-launcher.exe +0 -0
  237. data/lib/lib/NUnit/pnunit-launcher.exe.config +77 -0
  238. data/lib/lib/NUnit/pnunit.framework.dll +0 -0
  239. data/lib/lib/NUnit/pnunit.tests.dll +0 -0
  240. data/lib/lib/NUnit/runpnunit.bat +2 -0
  241. data/lib/lib/NUnit/test.conf +24 -0
  242. data/lib/lib/NUnit/tests/loadtest-assembly.dll +0 -0
  243. data/lib/lib/NUnit/tests/mock-assembly.dll +0 -0
  244. data/lib/lib/NUnit/tests/nonamespace-assembly.dll +0 -0
  245. data/lib/lib/NUnit/tests/nunit-console.tests.dll +0 -0
  246. data/lib/lib/NUnit/tests/nunit-gui.tests.dll +0 -0
  247. data/lib/lib/NUnit/tests/nunit.core.tests.dll +0 -0
  248. data/lib/lib/NUnit/tests/nunit.fixtures.tests.dll +0 -0
  249. data/lib/lib/NUnit/tests/nunit.framework.dll +0 -0
  250. data/lib/lib/NUnit/tests/nunit.framework.tests.dll +0 -0
  251. data/lib/lib/NUnit/tests/nunit.mocks.tests.dll +0 -0
  252. data/lib/lib/NUnit/tests/nunit.uiexception.tests.dll +0 -0
  253. data/lib/lib/NUnit/tests/nunit.uikit.tests.dll +0 -0
  254. data/lib/lib/NUnit/tests/nunit.util.tests.dll +0 -0
  255. data/lib/lib/NUnit/tests/test-assembly.dll +0 -0
  256. data/lib/lib/NUnit/tests/test-utilities.dll +0 -0
  257. data/lib/lib/NUnit/tests/timing-tests.dll +0 -0
  258. data/lib/open.bat +10 -0
  259. data/lib/settings/LOCAL.settings +29 -0
  260. data/lib/settings/SettingsFileReadMe.txt +2 -0
  261. data/lib/settings/UppercuT.config +73 -0
  262. data/lib/test.bat +38 -0
  263. data/lib/zip.bat +23 -0
  264. metadata +328 -0
@@ -0,0 +1,429 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <!-- $Id: NCoverFAQ.html 3 2008-10-07 22:50:36Z robz $ -->
5
+ <title></title>
6
+ <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
7
+ <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
8
+ <style> body { font-size: 10pt; font-family: Verdana; }
9
+ p.title { font-size: 20pt; font-weight: bold; }
10
+ .subtitle { color: maroon; }
11
+ p.question { font-weight: bold; }
12
+ pre { font-size: 10pt; font-family: Courier; }
13
+ pre.usage { background-color: #F0F0F0; }
14
+ .quote { background-color: #F0F0F0; margin-left: 36pt;}
15
+ .method { color: maroon; font-size: 10pt; font-weight: bold; }
16
+ .hdrcell { background-color: #DDEEFF; font-size: 10pt; }
17
+ .datacell { background-color: #FFFFEE; text-align: right; font-size: 10pt; }
18
+ .hldatacell { background-color: #FFCCCC; text-align: right; font-size: 10pt; }
19
+ .box { border: 1px solid; padding: 10px; }
20
+ </style>
21
+ </head>
22
+ <body>
23
+ <P class="title">NCover FAQ</P>
24
+ <P>If you have questions that this document does not address, contact <A href="mailto:peter@waldschmidt.com">
25
+ Peter Waldschmidt</A> or try the <A href="http://ncover.org/">NCover Forums</A>.</P>
26
+ <P class="question">1. What is code coverage analysis?</P>
27
+ <P class="answer">A code coverage analyzer monitors your code at runtime and
28
+ records information about which lines of code were executed. NCover shows each
29
+ sequence point in your application along with the number of times that point
30
+ was executed. Sequence points are generated by the compiler and stored in the
31
+ debug information (.pdb) files. A sequence point basically corresponds to a
32
+ single program statement (often a line of code) in your high-level language.</P>
33
+ <P class="question">2. Why would I want to do code coverage analysis?</P>
34
+ <P class="answer">Unit test suites are often used as a quality tool during the
35
+ development process to keep the codebase stable as it changes and expands.
36
+ Tools such as <A href="http://nunit.org/">NUnit</A> are often used to run and
37
+ report on the test suites. However, when implementing unit testing in your
38
+ build process, you have no way of knowing how much of your code the unit tests
39
+ are actually testing. This is where code coverage comes in. You can run NUnit
40
+ within NCover and use the code coverage report to determine which code was not
41
+ tested by that particular test suite.</P>
42
+ <P class="question">3. What versions of the CLR does NCover support?</P>
43
+ <P class="answer">
44
+ NCover 1.5.x requires the .NET framework version 2.0.50727 to be installed; however,
45
+ the application being profiled can be written against any shipping version of the
46
+ framework. NCover
47
+ has been tested profiling coverage of .NET 2.0, .NET 1.1 and .NET 1.0 applications.</P>
48
+ <P class="question">4. Which version of NCover should I install?</p>
49
+ <P class="answer">
50
+ If you have the .NET 2.0 framework installed on your machine then you should use
51
+ the latest NCover version available. NCover as of version 1.5 can profile .NET 2.0, 1.1 and 1.0 applications.</p>
52
+ <p class="answer">
53
+ For development teams who do not have the .NET framework 2.0 installed but do have
54
+ the .NET framework version 1.1.4322, you can
55
+ try NCover 1.3.3. Note however that this version is no longer supported as
56
+ it has a number of known issues and limitations.</p>
57
+ <P class="question">5. What is the command line syntax for NCover?</P>
58
+ <P class="answer">Here is the usage info from the NCover command line (for NCover versions from 1.5.6
59
+ only):</P>
60
+ <pre class="usage">NCover.Console [&lt;command line&gt; [&lt;command args&gt;]]
61
+ [//svc &lt;service name&gt;]
62
+ [//iis]
63
+ [//a &lt;assembly list&gt;]
64
+ [//w &lt;working directory&gt;]
65
+ [//ea &lt;exclusion list&gt;]
66
+ [//reg]
67
+ [//x &lt;xml output file&gt;]
68
+ [//s [&lt;settings file&gt;]] [//r [&lt;settings file&gt;]]
69
+ [//v] [//q]
70
+ [//l &lt;log file&gt;]
71
+
72
+ //svc For profiling windows services
73
+ //iis For profiling web applications
74
+
75
+ //a List of assemblies to profile separated by semi-colons i.e. "MyAssembly1;MyAssembly2". Do not include paths or suffixes.
76
+ //w Working directory for profiled application
77
+ //ea List of attributes marking classes or methods to exclude from coverage
78
+
79
+ //reg Register profiler temporarily for user. (helps with xcopy deployment)
80
+ //x Specify coverage output file. (default: coverage.xml).
81
+ //pm Specify name of process to profile (i.e. myapp.exe)
82
+
83
+ //s Save settings to a file (defaults: NCover.Settings)
84
+ //r Use settings file, overriding other settings (default: NCover.Settings)
85
+
86
+ //l Specify profiler log file (default: coverage.log).
87
+ //q No logging (quiet)
88
+ //v Enable verbose logging (show instrumented code)
89
+ </pre>
90
+ <UL>
91
+ <LI>&lt;command line&gt; - This argument specifies the command-line of the .NET application
92
+ you want to analyze.
93
+ Any command line arguments not starting with // will be passed
94
+ through to that application. NCover will profile the running application until it has exited. See below for examples.<li>//svc - This option is an alternative to the &lt;command line&gt;
95
+ for profiling windows services, which cannot be run directly as executables. NCover
96
+ will start the service (stopping it first if already running) and profile coverage
97
+ until the windows service is stopped.</li>
98
+ <li>//iis - This option is an alternative to the &lt;command line&gt; for profiling
99
+ web applications. NCover will start the IISAdmin and W3C
100
+ services (stopping first if currently running) and profile coverage until the IISAdmin
101
+ service is stopped.<br />
102
+ </li>
103
+ <li>//a - This command-line argument specifies the assemblies that you want to analyze.
104
+ NCover can only analyze assemblies that have .pdb files included with them. If
105
+ you do not specify the //a argument, NCover will attempt to analyze every loaded
106
+ assembly that has debug information available. Note that the assembly name arguments are
107
+ the module name within the assembly, not the physical file name. e.g. "MyAssembly"
108
+ rather than "MyAssembly.dll".<li>//w - If the application being profiled requires the
109
+ working directory to be set to something other than the current directory you are
110
+ executing the command line from then you can override it with this argument.</li>
111
+ <li>//ea - You can choose to exclude classes and methods
112
+ from coverage statistics by defining .NET attribute(s) and applying it to the affected
113
+ code. When using this argument you must specify the full type namespace of these
114
+ attribute(s) separated by semi-colons. See below for an example.<br />
115
+ </li>
116
+ <li>//reg - NCover requires a COM registration of the CoverLib.dll assembly containing
117
+ the profiler, which is performed automatically by the default .msi installation.
118
+ If you require an xcopy style deployment of NCover like many other .NET tools, then
119
+ you can use this argument which will temporarily register the profiler while performing
120
+ coverage. This feature was added in NCover 1.5.6.</li>
121
+ <li>//x - The output of NCover is an xml file (example below). Use this argument to
122
+ specify an alternate filename to "coverage.xml" in the current directory.<br />
123
+ </li>
124
+ <li>//pm - This setting tells NCover to ignore processes that don't have the specified process module name.
125
+ This is the name of the executable (i.e. myapp.exe). This setting is useful in cases, where your NCover
126
+ command spawns a series of child processes. Using this setting will help NCover determine which process to profile.
127
+ </li>
128
+ <li>//s - You may find it more convenient to use a settings file rather than specifying
129
+ a long list of command line arguments for running NCover. If you get the NCover
130
+ command line working as you would like it and then use the //s argument it will
131
+ save the required arguments as an xml file that can then be used by the //r argument
132
+ below.</li>
133
+ <li>//r - For use when you have used //s to construct an NCover settings file containing
134
+ your command line arguments. e.g. "ncover.console.exe //r NCover.Settings"<br />
135
+ </li>
136
+ <li>//l - The coverage log file can provide an insight if the desired coverage output
137
+ is not obtained. Useful information you may find to assist you includes which assemblies
138
+ were loaded by NCover, their file paths and which of those it found the .pdb build
139
+ symbols for. Use this argument to specify an alternative log file name or location
140
+ to coverage.log in the current directory.</li>
141
+ <li>//q - Suppresses writing the coverage.log file.</li>
142
+ <li>//v - This command-line argument makes the profiler emit all the original IL and
143
+ modified IL instructions to the coverage log. This is useful for debugging
144
+ purposes. Beware that this can make your coverage log file very large!
145
+ </li>
146
+ </UL>
147
+ <P class="question">6. Does NCover required a special compilation step for my code?</P>
148
+ <P class="answer">No. Some code coverage tools change your source code and force
149
+ you to recompile it into a special build.&nbsp; NCover is designed to&nbsp;work
150
+ on shipping code.&nbsp; NCover uses the .NET Framework profiling API to monitor
151
+ your code. It does require build symbols, but can be run on release code
152
+ without any modifications.</P>
153
+ <P class="question">7. How does NCover work?</P>
154
+ <P class="answer">NCover uses the .NET Framework profiler API to monitor an
155
+ application's execution. When a method is loaded by the CLR, NCover retrieves
156
+ the IL and replaces it with instrumented IL code.&nbsp; NCover does not change
157
+ your original IL code, it simply inserts new code to update&nbsp;a visit
158
+ counter at each sequence point.&nbsp; Upon
159
+ request, (usually after the .NET process has shut down) the profiler outputs statistics
160
+ to the coverage file.
161
+ </P>
162
+ <P class="question">
163
+ 8. What is the output of NCover?</P>
164
+ <P class="answer">NCover generally writes out three files after analysis
165
+ completes.
166
+ <ul>
167
+ <li>
168
+ Coverage.log - This file is a log of the events and messages from the profiler
169
+ during the analysis process. Most of the time, error messages are recorded in
170
+ this log. If you enable verbose logging, the coverage log will contain
171
+ disassembly of the original and instrumented IL code.&nbsp; Verbose logging is not recommended for
172
+ normal use.<li>
173
+ Coverage.xml - This file is the analysis output of NCover. You can see an
174
+ example of the output below.
175
+ <LI>
176
+ Coverage.xsl - This file is a simple XML transformation that makes the XML
177
+ output easily readable.
178
+ </LI>
179
+ </ul>
180
+ <span class="subtitle">Example XML output</span>
181
+ <div class="box"><pre>&lt;method class="NCoverTest.ClassLoaded" name="HasDeadCode"&gt;
182
+ &lt;seqpnt document="C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs"
183
+ column="13" line="48" endcolumn="58" endline="48" visitcount="1" /&gt;
184
+ &lt;seqpnt document="C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs"
185
+ column="13" line="49" endcolumn="22" endline="49" visitcount="1" /&gt;
186
+ &lt;seqpnt document="C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs"
187
+ column="17" line="50" endcolumn="24" endline="50" visitcount="1" /&gt;
188
+ &lt;seqpnt document="C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs"
189
+ column="13" line="51" endcolumn="48" endline="51" visitcount="0" /&gt;
190
+ &lt;seqpnt document="C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs"
191
+ column="9" line="52" endcolumn="10" endline="52" visitcount="0" /&gt;
192
+ &lt;/method&gt;</pre>
193
+ </div>
194
+ <p></p>
195
+ <span class="subtitle">Example transformed output</span>
196
+ <div class="box">
197
+ <DIV class="method">NCoverTest.ClassLoaded.HasDeadCode</DIV>
198
+ <TABLE id="Table1" borderColor="black" cellSpacing="0" cellPadding="3" border="1">
199
+ <TBODY>
200
+ <TR>
201
+ <TD class="hdrcell">Visit Count</TD>
202
+ <TD class="hdrcell">Line</TD>
203
+ <TD class="hdrcell">Column</TD>
204
+ <TD class="hdrcell">End Line</TD>
205
+ <TD class="hdrcell">End Column</TD>
206
+ <TD class="hdrcell">Document</TD>
207
+ </TR>
208
+ <TR>
209
+ <TD class="datacell">1</TD>
210
+ <TD class="datacell">48</TD>
211
+ <TD class="datacell">13</TD>
212
+ <TD class="datacell">48</TD>
213
+ <TD class="datacell">58</TD>
214
+ <TD class="datacell">C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs</TD>
215
+ </TR>
216
+ <TR>
217
+ <TD class="datacell">1</TD>
218
+ <TD class="datacell">49</TD>
219
+ <TD class="datacell">13</TD>
220
+ <TD class="datacell">49</TD>
221
+ <TD class="datacell">22</TD>
222
+ <TD class="datacell">C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs</TD>
223
+ </TR>
224
+ <TR>
225
+ <TD class="datacell">1</TD>
226
+ <TD class="datacell">50</TD>
227
+ <TD class="datacell">17</TD>
228
+ <TD class="datacell">50</TD>
229
+ <TD class="datacell">24</TD>
230
+ <TD class="datacell">C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs</TD>
231
+ </TR>
232
+ <TR>
233
+ <TD class="hldatacell">0</TD>
234
+ <TD class="datacell">51</TD>
235
+ <TD class="datacell">13</TD>
236
+ <TD class="datacell">51</TD>
237
+ <TD class="datacell">48</TD>
238
+ <TD class="datacell">C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs</TD>
239
+ </TR>
240
+ <TR>
241
+ <TD class="hldatacell">0</TD>
242
+ <TD class="datacell">52</TD>
243
+ <TD class="datacell">9</TD>
244
+ <TD class="datacell">52</TD>
245
+ <TD class="datacell">10</TD>
246
+ <TD class="datacell">C:\Dev\Utilities\ncover\NCoverTest\NCoverTest.cs</TD>
247
+ </TR>
248
+ </TBODY>
249
+ </TABLE>
250
+ </div>
251
+ <P>Suggested usages of the coverage.xml output are to display it in the <a href="http://ncoverexplorer.org/">
252
+ NCoverExplorer</a> gui with the source
253
+ code highlighted, to generate html reports, or to include it in your continuous build server reports such as CruiseControl.Net.
254
+ For more information on these options see below in the FAQ.</P>
255
+ <P></P>
256
+ <P class="question">
257
+ 9. How do I use coverage exclusions?</P>
258
+ <p>
259
+ First you should define an attribute to markup your excluded code with. You will
260
+ likely want to put this in a common assembly to make it reusable, or indeed within
261
+ a "CommonAssemblyInfo.cs" that you include in all your application assemblies.</p>
262
+ <P></P>
263
+ <pre class="usage">namespace MyNamespace {
264
+ class CoverageExcludeAttribute : System.Attribute { }
265
+ }</pre>
266
+ <p>
267
+ Apply the attribute to the C# classes and/or methods you wish to mark as excluded
268
+ from code coverage statistics:</p>
269
+ <P></P>
270
+ <pre class="usage"> [CoverageExclude]
271
+ private void SomeMethodToExclude() {} </pre>
272
+ <p>
273
+ Finally, ensure you pass the full qualified attribute information in the NCover command line:</p>
274
+ <P></P>
275
+ <pre class="usage"> NCover.Console MyApplication.exe //ea MyNamespace.CoverageExcludeAttribute </pre>
276
+ <p>
277
+ Note that if you are using the <a href="http://testdriven.net/">TestDriven.Net</a>
278
+ VS.Net add-in to "Test with Coverage" it will automatically
279
+ pass through "//ea CoverageExcludeAttribute"
280
+ which you should define without a namespace like above. For further information refer to this
281
+ <a href="http://weblogs.asp.net/nunitaddin/archive/2006/10/04/CoverageExclude.aspx">
282
+ blog entry</a>.</p>
283
+ <P class="question">
284
+ 10. Examples</P>
285
+ <p>
286
+ Coverage while running a simple executable until it exits:</p>
287
+ <P></P>
288
+ <pre class="usage"> NCover.Console MyApplication.exe</pre>
289
+ <p>
290
+ Coverage while running all the unit tests in an assembly using NUnit, profiling
291
+ all loaded assemblies with .pdb build symbols:</p>
292
+ <P></P>
293
+ <pre class="usage"> NCover.Console nunit-console.exe MyApplication.Tests.dll</pre>
294
+ <p>
295
+ Coverage of only a subset of loaded assemblies while running unit tests:</p>
296
+ <P></P>
297
+ <pre class="usage"> NCover.Console nunit-console.exe MyApplication.Tests.dll //a MyApplication.Core;MyApplication.Utilities</pre>
298
+ <p>
299
+ Coverage of a windows service. Stop the service to generate the coverage output:</p>
300
+ <P></P>
301
+ <pre class="usage"> NCover.Console //svc MyServiceName</pre>
302
+ <p>
303
+ Coverage of an ASP.Net application. Stop the IIS service to generate the coverage
304
+ output:</p>
305
+ <P></P>
306
+ <pre class="usage"> NCover.Console //iis</pre>
307
+ <P class="question">
308
+ 11. Where can I get help or support?</P>
309
+ <P class="answer">
310
+ Your best approach is to browse the <a href="http://ncover.org/site/forums/default.aspx">
311
+ NCover forums</a> as well as the <a href="http://ncover.org/SITE/blogs/default.aspx">
312
+ blog</a> by the author Peter Waldschmidt. If you cannot find a similar issue
313
+ mentioned feel free to post your query and perhaps someone can help.</P>
314
+ <P class="question">
315
+ 12. How do I "xcopy deploy" NCover like my other build tools?</P>
316
+ <P class="answer">
317
+ Many developers prefer to have their build tools such as NUnit, NAnt etc stored
318
+ in source control in a Tools folder along with the source code. This ensures that
319
+ a new developer can obtain and build the application without having to install additional
320
+ tools on their own machines.</P>
321
+ <p>
322
+ NCover can also be deployed in this fashion. However the one gotcha with NCover
323
+ versus other tools is that the profiler within CoverLib.dll must be COM registered
324
+ on the local machine before you execute it. Prior to NCover 1.5.6 this was usually
325
+ achieved as part of your build script, which would call regsvr32 with the path to
326
+ the CoverLib.dll in your Tools folder. Alternatively the &lt;ncover&gt; NAnt and
327
+ MSBuild tasks described below will do this for you. As of NCover 1.5.6 you can also
328
+ use the //reg option in the command line arguments which will temporarily register
329
+ the profiler. Note that the //reg option will not work for IIS or Windows Service
330
+ profiling unless you are running NCover under the same Windows login account as
331
+ the IIS worker process, or your Windows Service.</p>
332
+ <P class="question">
333
+ 13. How do I see my source code highlighted with the coverage results?</P>
334
+ <P class="answer">
335
+ <a href="http://ncoverexplorer.org/">NCoverExplorer</a> is a gui and console-based
336
+ .NET application developed by <a href="http://www.kiwidude.com/blog/">Grant Drake</a>. NCoverExplorer
337
+ parses the coverage.xml files output from NCover and displays the results integrated
338
+ with your source code. It also includes a number of additional features to merge,
339
+ filter, sort and generate html reports. The console version is
340
+ designed to be used as part of an automated build process. The support forums for
341
+ NCoverExplorer are located with the NCover ones at <a href="http://ncover.org">http://ncover.org/</a>.<strong>&nbsp;</strong></P>
342
+ <P class="question">
343
+ 14. How do I run NCover from within the Visual Studio.Net IDE?</P>
344
+ <P class="answer">
345
+ The <a href="http://testdriven.net/">TestDriven.Net</a> add-in by <a href="http://weblogs.asp.net/nunitaddin/">
346
+ Jamie Cansdale</a> offers a right-click capability within the IDE to execute
347
+ your unit tests with code coverage. The results of the NCover code coverage are
348
+ displayed with the bundled NCoverExplorer gui for analysis and reporting.</P>
349
+ <P class="question">
350
+ 15. How do I run NCover from a NAnt or MSBuild task?</P>
351
+ <P class="answer">
352
+ You can use an &lt;exec&gt; task with <a href="http://nant.sourceforge.net/">NAnt</a>
353
+ or an &lt;Exec&gt; task with MSBuild. Alternatively you may want to use the custom
354
+ &lt;ncover&gt; task for NAnt or &lt;NCover&gt; task for MSBuild developed by Grant
355
+ Drake for a more developer friendly syntax. The source code, compiled assemblies
356
+ and documentation are located in the NCoverExplorer.Extras.zip available from <a
357
+ href="http://ncoverexplorer.org/">http://ncoverexplorer.org/</a>.</P>
358
+ <P class="question">
359
+ 16. How do I include NCover output in my CruiseControl.Net build reports?</P>
360
+ <P class="answer">
361
+ <a href="http://ccnet.thoughtworks.com/">CruiseControl.Net</a> is a continuous integration
362
+ build server which offers web-based reporting of the outputs of a build such as
363
+ unit test results and code coverage reporting. The default CruiseControl.Net installation
364
+ includes a basic stylesheet which works in combination with the standard coverage.xml
365
+ formatted output. So all you need to do is include the execution of NCover as part
366
+ of your build, then add a CruiseControl.Net merge file publisher task to integrate
367
+ the coverage.xml results into the build output.</P>
368
+ <p class="answer">
369
+ An improvement on the above to display more attractive and powerful reports as well
370
+ as minimize the build log size is to use NCoverExplorer. The NCoverExplorer.Console.exe
371
+ is designed to produce a more concise xml report summary that is combined with an
372
+ alternate xsl stylesheet for CruiseControl.Net. You can find more information and
373
+ screenshots in this <a href="http://www.kiwidude.com/blog/2006/04/ncoverexplorer-v133.html">
374
+ blog entry</a> - all the necessary tasks, examples and documentation are located
375
+ within NCoverExplorer.Extras.zip available from <a href="http://ncoverexplorer.org/">
376
+ http://ncoverexplorer.org/</a>.&nbsp;</p>
377
+ <P class="question">
378
+ 17. How do I merge multiple NCover coverage.xml results?</P>
379
+ <P class="answer">
380
+ You can can use NCoverExplorer to merge the results of multiple coverage runs. For
381
+ more information refer to this <a href="http://www.kiwidude.com/blog/2006/10/ncoverexplorer-merging-ncover-reports.html">
382
+ blog entry</a>.</P>
383
+ <P class="question">
384
+ 18. Troubleshooting: Why is my coverage.xml file empty?</P>
385
+ <ul>
386
+ <li>If using the command-line, did you COM register CoverLib.dll (or use the //reg option
387
+ from NCover 1.5.6)?</li>
388
+ <li>Did you generate build symbol files (.pdbs) for the profiled application?</li>
389
+ <li>If using the //a option, did you correctly list just the assembly names without
390
+ paths or .dll suffixes?</li>
391
+ </ul>
392
+ <P class="question">
393
+ 19. Troubleshooting: I have coverage.xml output but my XYZ assembly is not included in it?</P>
394
+ <ul>
395
+ <li>NCover will only profile loaded assemblies - did your code execution path while
396
+ under coverage force that assembly to be loaded (e.g. by loading a type or calling
397
+ a method in that assembly)?&nbsp;</li>
398
+ <li>Did you generate build symbol files (.pdb files) for the missing assembly? </li>
399
+ <li>If using the //a option, did you correctly list the assembly names including the
400
+ one that is missing?</li>
401
+ <li>Can you see information about the assembly being loaded within the coverage.log?
402
+ Is the correct assembly being loaded (check the path) - if you have a version in
403
+ the GAC it may possibly prevent the .pdb file from being loaded.</li><li>If using the NCoverExplorer gui, have you got a coverage exclusion defined which
404
+ is hiding it from the display?</li>
405
+ </ul>
406
+ <P class="question">
407
+ 20. Troubleshooting: After running NCover my coverage.log says "Failed to load symbols for module XYZ"?</P>
408
+ <ul>
409
+ <li>This message means that no .pdb build symbol file was found for that assembly so
410
+ it cannot be profiled for code coverage. If that assembly is part of the .NET framework
411
+ for instance like System.Data.dll, then this is an expected message and should not
412
+ cause concern.&nbsp;</li><li>If however the assembly belongs to your application, did you generate the
413
+ build symbol files (.pdb files) for it? </li>
414
+ </ul>
415
+ <P class="question">
416
+ 21. Troubleshooting: I get a "Profiled process terminated. Profiler connection not
417
+ established" message?</P>
418
+ <ul>
419
+ <li>If using the command-line, did you COM register CoverLib.dll (or use the //reg option
420
+ from NCover 1.5.6)?</li><li>Are you running Windows XP 64-bit? You may want to take a look at
421
+ <a href="http://ncover.org/SITE/forums/thread/43.aspx">this thread</a></li></ul>
422
+ <P class="question">
423
+ 22. Troubleshooting: My coverage exclusions are not working?</P>
424
+ <ul>
425
+ <li>Have you put the full namespace type name to the exclusion including the Attribute suffix in the //ea argument? See the "How
426
+ do I use coverage exclusions?" question above.</li></ul>
427
+ &nbsp;
428
+ </body>
429
+ </html>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <!-- Copyright © 1981-2001 Microsoft Corporation -->
3
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
4
+ <noInheritable/>
5
+ <assemblyIdentity
6
+ type="win32"
7
+ name="Microsoft.VC80.CRT"
8
+ version="8.0.50608.0"
9
+ processorArchitecture="x86"
10
+ publicKeyToken="1fc8b3b9a1e18e3b"
11
+ />
12
+ <file name="msvcr80.dll"/>
13
+ <file name="msvcp80.dll"/>
14
+ <file name="msvcm80.dll"/>
15
+ </assembly>
@@ -0,0 +1,299 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Library General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ EXCEPTION
281
+
282
+ 13. In addition, as a special exception, AlphaSierraPapa gives permission to
283
+ link the code of this program with the Microsoft .NET library (or with
284
+ modified versions of Microsoft .NET library that use the same license as the
285
+ Microsoft .NET library), and distribute linked combinations including the
286
+ two. As a second exception, AlphaSierraPapa gives permission to link the code
287
+ of this program with the DockPanel Suite (or with modified versions of
288
+ DockPanel Suite that use the same license as the DockPanel Suite), and
289
+ distribute linked combinations including the two. You must obey the GNU
290
+ General Public License in all respects for all of the code used other than
291
+ the Microsoft .NET library and the DockPanel Suite.
292
+ If you modify this file, you may extend this exception to your version of the
293
+ file, but you are not obliged to do so. If you do not wish to do so, delete
294
+ this exception statement from your version.
295
+
296
+
297
+
298
+ END OF TERMS AND CONDITIONS
299
+