/BuildTools/MSBuildCommunityTasks/Sample.proj

http://github.com/icsharpcode/ILSpy · Unknown · 153 lines · 127 code · 26 blank · 0 comment · 0 complexity · 44d5361843a7b1683111d6041ced1f09 MD5 · raw file

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Project DefaultTargets="All" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3. <!-- Required Import to use MSBuild Community Tasks -->
  4. <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
  5. <!-- These are sample targets the demonstrate the use of MSBuild Community Tasks -->
  6. <Target Name="AssemblyInfo">
  7. <AssemblyInfo CodeLanguage="CS"
  8. OutputFile="AssemblyInfo.cs"
  9. AssemblyTitle="AssemblyInfoTask"
  10. AssemblyDescription="AssemblyInfo Description"
  11. AssemblyConfiguration=""
  12. AssemblyCompany="Company Name, LLC"
  13. AssemblyProduct="AssemblyInfoTask"
  14. AssemblyCopyright="Copyright (c) Company Name, LLC 2005"
  15. AssemblyTrademark=""
  16. ComVisible="false"
  17. CLSCompliant="true"
  18. Guid="d038566a-1937-478a-b5c5-b79c4afb253d"
  19. AssemblyVersion="1.0.0.0"
  20. AssemblyFileVersion="1.0.0.0" />
  21. </Target>
  22. <Target Name="Math">
  23. <Add Numbers="4;3">
  24. <Output TaskParameter="Result" PropertyName="Result" />
  25. </Add>
  26. <Message Text="Add 4+3= $(Result)"/>
  27. <Add Numbers="4;3;7">
  28. <Output TaskParameter="Result" PropertyName="Result" />
  29. </Add>
  30. <Message Text="Add 4+3+7= $(Result)"/>
  31. <Subtract Numbers="10;3">
  32. <Output TaskParameter="Result" PropertyName="Result" />
  33. </Subtract>
  34. <Message Text="Subtract 10-3= $(Result)"/>
  35. <Multiple Numbers="10;3">
  36. <Output TaskParameter="Result" PropertyName="Result" />
  37. </Multiple>
  38. <Message Text="Multiple 10*3= $(Result)"/>
  39. <Divide Numbers="1;2">
  40. <Output TaskParameter="Result" PropertyName="Result" />
  41. </Divide>
  42. <Message Text="Divide 1/2= $(Result)"/>
  43. </Target>
  44. <Target Name="Version">
  45. <Version VersionFile="version.txt" RevisionType="Increment">
  46. <Output TaskParameter="Major" PropertyName="Major" />
  47. <Output TaskParameter="Minor" PropertyName="Minor" />
  48. <Output TaskParameter="Build" PropertyName="Build" />
  49. <Output TaskParameter="Revision" PropertyName="Revision" />
  50. </Version>
  51. <Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
  52. </Target>
  53. <Target Name="Registry">
  54. <RegistryRead
  55. KeyName="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework"
  56. ValueName="InstallRoot">
  57. <Output TaskParameter="Value" PropertyName="InstallRoot" />
  58. </RegistryRead>
  59. <Message Text="InstallRoot: $(InstallRoot)"/>
  60. <RegistryWrite
  61. KeyName="HKEY_CURRENT_USER\SOFTWARE\MSBuildTasks"
  62. ValueName="RegistryWrite"
  63. Value="Test Write" />
  64. </Target>
  65. <Target Name="Service">
  66. <ServiceQuery ServiceName="w3svc">
  67. <Output TaskParameter="Status" PropertyName="Status" />
  68. </ServiceQuery>
  69. <Message Text="Web Server: $(Status)"/>
  70. <ServiceController ServiceName="w3svc" Action="Restart" />
  71. </Target>
  72. <Target Name="WebDownload">
  73. <WebDownload FileUri="http://www.microsoft.com/default.aspx"
  74. FileName="microsoft.html" />
  75. </Target>
  76. <Target Name="Attrib" DependsOnTargets="Version">
  77. <Attrib Files="version.txt"
  78. ReadOnly="true" Hidden="true" System="true"/>
  79. <Attrib Files="version.txt"
  80. Hidden="false" System="false"/>
  81. <Attrib Files="version.txt"
  82. Normal="true"/>
  83. </Target>
  84. <PropertyGroup>
  85. <Code>
  86. <![CDATA[
  87. public static void ScriptMain() {
  88. List<string> list = new List<string>();
  89. list.Add("Happy");
  90. list.Add("New");
  91. list.Add("Year");
  92. Console.WriteLine("Hello MSBuild Community Scripting World.");
  93. foreach(string s in list)
  94. {
  95. Console.WriteLine(s);
  96. }
  97. }
  98. ]]>
  99. </Code>
  100. </PropertyGroup>
  101. <Target Name="Script">
  102. <Script Language="C#" Code="$(Code)" />
  103. </Target>
  104. <Target Name="Sleep">
  105. <Message Text="Sleep: 200"/>
  106. <Sleep Milliseconds="200" />
  107. </Target>
  108. <ItemGroup>
  109. <ZipFiles Include="**\*.*" Exclude="" />
  110. </ItemGroup>
  111. <Target Name="Zip">
  112. <Zip Files="@(ZipFiles)"
  113. ZipFileName="Sample.zip" />
  114. </Target>
  115. <Target Name="All">
  116. <CallTarget Targets="AssemblyInfo" />
  117. <CallTarget Targets="Math" />
  118. <CallTarget Targets="Version" />
  119. <CallTarget Targets="Registry" />
  120. <CallTarget Targets="Service" />
  121. <CallTarget Targets="WebDownload" />
  122. <CallTarget Targets="Attrib" />
  123. <CallTarget Targets="Script" />
  124. <CallTarget Targets="Sleep" />
  125. <CallTarget Targets="Zip" />
  126. </Target>
  127. </Project>