Browse Source

Uses a XML config file for the projects instead of having to modify the powershell at each release

Former-commit-id: 3c4e47af8faab3328199a29b3351d15b3ec310f1
af/merge-core
Thomas Broust 12 years ago
parent
commit
daf2ec8ed9
  1. 54
      build/Build.ImageProcessor.Plugins.Cair.proj
  2. 54
      build/Build.ImageProcessor.Plugins.WebP.proj
  3. 57
      build/Build.ImageProcessor.Web.proj
  4. 54
      build/Build.ImageProcessor.proj
  5. 1
      build/MSBuildCommunityTasks/ICSharpCode.SharpZipLib.dll.REMOVED.git-id
  6. 147
      build/MSBuildCommunityTasks/MSBuild.Community.Tasks.Targets
  7. 1
      build/MSBuildCommunityTasks/MSBuild.Community.Tasks.chm.REMOVED.git-id
  8. 1
      build/MSBuildCommunityTasks/MSBuild.Community.Tasks.dll.REMOVED.git-id
  9. 1
      build/MSBuildCommunityTasks/MSBuild.Community.Tasks.xml.REMOVED.git-id
  10. 1
      build/MSBuildCommunityTasks/MSBuild.Community.Tasks.xsd.REMOVED.git-id
  11. 153
      build/MSBuildCommunityTasks/Sample.proj
  12. 74
      build/build.ps1
  13. 43
      build/build.xml
  14. 0
      build/tools/NUnitHTMLReportGenerator.exe.REMOVED.git-id
  15. 0
      build/tools/NUnitHTMLReportGenerator.exe.config

54
build/Build.ImageProcessor.Plugins.Cair.proj

@ -1,54 +0,0 @@
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.\</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project=".\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!--
****************************************************
VARIABLES
*****************************************************
-->
<PropertyGroup>
<BuildConfiguration>Release</BuildConfiguration>
<BuildFolder>_BuildOutput\</BuildFolder>
<IncludeSymbols>False</IncludeSymbols>
<BuildFolderAbsolutePath>$(MSBuildProjectDirectory)\$(BuildFolder)</BuildFolderAbsolutePath>
<SolutionBinFolderAbsolutePath>$(BuildFolderAbsolutePath)ImageProcessor.Plugins.Cair\lib\net45</SolutionBinFolderAbsolutePath>
<BuildInputDir>..\src\Plugins\ImageProcessor\ImageProcessor.Plugins.Cair\</BuildInputDir>
</PropertyGroup>
<!--
****************************************************
TARGETS
*****************************************************
-->
<Target Name="Build" DependsOnTargets="BuildImageProcessorPluginsCair">
<Message Text="Build finished" />
</Target>
<Target Name="BuildImageProcessorPluginsCair" DependsOnTargets="SetVersionNumber">
<Message Text="Compiling ImageProcessor.Plugins.Cair project to build\$(BuildFolder)" Importance="High" />
<MSBuild Projects="$(BuildInputDir)\ImageProcessor.Plugins.Cair.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);" Targets="Clean;Rebuild;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False" />
<Message Text="Finished compiling project" Importance="High" />
</Target>
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
<Message Text="Creating Version File: $(BUILD_RELEASE)"/>
<ItemGroup>
<AssemblyFiles Include="$(BuildInputDir)Properties\AssemblyInfo.cs;" />
</ItemGroup>
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\(&quot;([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)?&quot;\)"
ReplacementText="$1(&quot;$(BUILD_RELEASE)&quot;)" />
</Target>
</Project>

54
build/Build.ImageProcessor.Plugins.WebP.proj

@ -1,54 +0,0 @@
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.\</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project=".\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!--
****************************************************
VARIABLES
*****************************************************
-->
<PropertyGroup>
<BuildConfiguration>Release</BuildConfiguration>
<BuildFolder>_BuildOutput\</BuildFolder>
<IncludeSymbols>False</IncludeSymbols>
<BuildFolderAbsolutePath>$(MSBuildProjectDirectory)\$(BuildFolder)</BuildFolderAbsolutePath>
<SolutionBinFolderAbsolutePath>$(BuildFolderAbsolutePath)ImageProcessor.Plugins.WebP\lib\net45</SolutionBinFolderAbsolutePath>
<BuildInputDir>..\src\Plugins\ImageProcessor\ImageProcessor.Plugins.WebP\</BuildInputDir>
</PropertyGroup>
<!--
****************************************************
TARGETS
*****************************************************
-->
<Target Name="Build" DependsOnTargets="BuildImageProcessorPluginsWebP">
<Message Text="Build finished" />
</Target>
<Target Name="BuildImageProcessorPluginsWebP" DependsOnTargets="SetVersionNumber">
<Message Text="Compiling ImageProcessor.Plugins.WebP project to build\$(BuildFolder)" Importance="High" />
<MSBuild Projects="$(BuildInputDir)\ImageProcessor.Plugins.WebP.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);" Targets="Clean;Rebuild;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False" />
<Message Text="Finished compiling project" Importance="High" />
</Target>
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
<Message Text="Creating Version File: $(BUILD_RELEASE)"/>
<ItemGroup>
<AssemblyFiles Include="$(BuildInputDir)Properties\AssemblyInfo.cs;" />
</ItemGroup>
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\(&quot;([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)?&quot;\)"
ReplacementText="$1(&quot;$(BUILD_RELEASE)&quot;)" />
</Target>
</Project>

57
build/Build.ImageProcessor.Web.proj

@ -1,57 +0,0 @@
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.\</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project=".\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!--
****************************************************
VARIABLES
*****************************************************
-->
<PropertyGroup>
<BuildConfiguration>Release</BuildConfiguration>
<BuildFolder>_BuildOutput\</BuildFolder>
<IncludeSymbols>False</IncludeSymbols>
<BuildFolderRelativeToProjects>..\..\..\build\$(BuildFolder)</BuildFolderRelativeToProjects>
<BuildFolderAbsolutePath>$(MSBuildProjectDirectory)\$(BuildFolder)</BuildFolderAbsolutePath>
<SolutionBinFolder>$(BuildFolder)bin\</SolutionBinFolder>
<SolutionBinFolderRelativeToProjects>$(BuildFolderRelativeToProjects)bin\</SolutionBinFolderRelativeToProjects>
<SolutionBinFolderAbsolutePath>$(BuildFolderAbsolutePath)ImageProcessor.Web\lib\net45</SolutionBinFolderAbsolutePath>
<BuildInputDir>..\src\ImageProcessor.Web\</BuildInputDir>
</PropertyGroup>
<!--
****************************************************
TARGETS
*****************************************************
-->
<Target Name="Build" DependsOnTargets="BuildImageProcessorWeb">
<Message Text="Build finished" />
</Target>
<Target Name="BuildImageProcessorWeb" DependsOnTargets="SetVersionNumber">
<Message Text="Compiling ImageProcessor.Web projects to build\$(BuildFolder)" Importance="High" />
<MSBuild Projects="$(BuildInputDir)\ImageProcessor.Web.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);" Targets="Clean;Rebuild;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False" />
<Message Text="Finished compiling projects" Importance="High" />
</Target>
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
<Message Text="Creating Version File: $(BUILD_RELEASE)"/>
<ItemGroup>
<AssemblyFiles Include="$(BuildInputDir)Properties\AssemblyInfo.cs;" />
</ItemGroup>
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\(&quot;([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)?&quot;\)"
ReplacementText="$1(&quot;$(BUILD_RELEASE)&quot;)" />
</Target>
</Project>

54
build/Build.ImageProcessor.proj

@ -1,54 +0,0 @@
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.\</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project=".\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!--
****************************************************
VARIABLES
*****************************************************
-->
<PropertyGroup>
<BuildConfiguration>Release</BuildConfiguration>
<BuildFolder>_BuildOutput\</BuildFolder>
<IncludeSymbols>False</IncludeSymbols>
<BuildFolderAbsolutePath>$(MSBuildProjectDirectory)\$(BuildFolder)</BuildFolderAbsolutePath>
<SolutionBinFolderAbsolutePath>$(BuildFolderAbsolutePath)ImageProcessor\lib\net45</SolutionBinFolderAbsolutePath>
<BuildInputDir>..\src\ImageProcessor\</BuildInputDir>
</PropertyGroup>
<!--
****************************************************
TARGETS
*****************************************************
-->
<Target Name="Build" DependsOnTargets="BuildImageProcessor">
<Message Text="Build finished" />
</Target>
<Target Name="BuildImageProcessor" DependsOnTargets="SetVersionNumber">
<Message Text="Compiling ImageProcessor project to build\$(BuildFolder)" Importance="High" />
<MSBuild Projects="$(BuildInputDir)\ImageProcessor.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);" Targets="Clean;Rebuild;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False" />
<Message Text="Finished compiling project" Importance="High" />
</Target>
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
<Message Text="Creating Version File: $(BUILD_RELEASE)"/>
<ItemGroup>
<AssemblyFiles Include="$(BuildInputDir)Properties\AssemblyInfo.cs;" />
</ItemGroup>
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\(&quot;([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)?&quot;\)"
ReplacementText="$1(&quot;$(BUILD_RELEASE)&quot;)" />
</Target>
</Project>

1
build/MSBuildCommunityTasks/ICSharpCode.SharpZipLib.dll.REMOVED.git-id

@ -1 +0,0 @@
77bafe8ba867a1618b8735200289f6fad68b825e

147
build/MSBuildCommunityTasks/MSBuild.Community.Tasks.Targets

@ -1,147 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- $Id$ -->
<PropertyGroup>
<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
<MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AspNet.InstallAspNet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AssemblyInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Attrib" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Beep" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.DeleteTree" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlExecute" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FileUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FtpUpload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FxCop" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GacUtil" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GetSolutionProjects" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ILMerge" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Mail" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Merge" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Move" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpCreateRemoteDirectory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpDirectoryExists" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpUploadDirectoryContent" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Add" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Divide" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Modulo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Multiple" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Subtract" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NDoc" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NUnit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Oracle.AddTnsName" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Prompt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryWrite" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexMatch" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexReplace" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RoboCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Script" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sleep" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryScriptMap" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectorySetting" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.InstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.UninstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Schema.TaskSchema" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sound" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssAdd" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckin" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssClean" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssDiff" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssGet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssHistory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssLabel" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssUndoCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.SrcTool" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.PdbStr" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.SvnSourceIndex" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.ExecuteDDL" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.SqlPubWiz" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCommit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnExport" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnVersion" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnStatus" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Tfs.TfsClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.TemplateFile" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Time" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Unzip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Version" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.WebDownload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlMassUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xslt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Zip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.JavaScript.JSCompress" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.User" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Computer" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.BuildAssembler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.ChmBuilder" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.DBCSFix" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.MRefBuilder" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.Sandcastle" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.XslTransform" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.HtmlHelp.ChmCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.HtmlHelp.HxCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SymbolServer.SymStore" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Net.HttpRequest" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NuGet.NuGetPack" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NuGet.NuGetPush" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Git.GitClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Git.GitVersion" />
<ItemGroup>
<FxCopRuleAssemblies Include="UsageRules.dll"/>
<FxCopRuleAssemblies Include="SecurityRules.dll"/>
<FxCopRuleAssemblies Include="PortabilityRules.dll"/>
<FxCopRuleAssemblies Include="PerformanceRules.dll"/>
<FxCopRuleAssemblies Include="MobilityRules.dll"/>
<FxCopRuleAssemblies Include="InteroperabilityRules.dll"/>
<FxCopRuleAssemblies Include="GlobalizationRules.dll"/>
<FxCopRuleAssemblies Include="DesignRules.dll"/>
</ItemGroup>
</Project>

1
build/MSBuildCommunityTasks/MSBuild.Community.Tasks.chm.REMOVED.git-id

@ -1 +0,0 @@
e9cfb77efd964e4fb6659c0c2cc9bc934b7edb17

1
build/MSBuildCommunityTasks/MSBuild.Community.Tasks.dll.REMOVED.git-id

@ -1 +0,0 @@
3d1dbd357f5e4ae47bf017d4227811bd052b5347

1
build/MSBuildCommunityTasks/MSBuild.Community.Tasks.xml.REMOVED.git-id

@ -1 +0,0 @@
0ddc819937fec260f50b99350f7643feced88342

1
build/MSBuildCommunityTasks/MSBuild.Community.Tasks.xsd.REMOVED.git-id

@ -1 +0,0 @@
14f9e4c08f357d1b2f185dbe24df292ce74ef064

153
build/MSBuildCommunityTasks/Sample.proj

@ -1,153 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="All" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Required Import to use MSBuild Community Tasks -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<!-- These are sample targets the demonstrate the use of MSBuild Community Tasks -->
<Target Name="AssemblyInfo">
<AssemblyInfo CodeLanguage="CS"
OutputFile="AssemblyInfo.cs"
AssemblyTitle="AssemblyInfoTask"
AssemblyDescription="AssemblyInfo Description"
AssemblyConfiguration=""
AssemblyCompany="Company Name, LLC"
AssemblyProduct="AssemblyInfoTask"
AssemblyCopyright="Copyright (c) Company Name, LLC 2005"
AssemblyTrademark=""
ComVisible="false"
CLSCompliant="true"
Guid="d038566a-1937-478a-b5c5-b79c4afb253d"
AssemblyVersion="1.0.0.0"
AssemblyFileVersion="1.0.0.0" />
</Target>
<Target Name="Math">
<Add Numbers="4;3">
<Output TaskParameter="Result" PropertyName="Result" />
</Add>
<Message Text="Add 4+3= $(Result)"/>
<Add Numbers="4;3;7">
<Output TaskParameter="Result" PropertyName="Result" />
</Add>
<Message Text="Add 4+3+7= $(Result)"/>
<Subtract Numbers="10;3">
<Output TaskParameter="Result" PropertyName="Result" />
</Subtract>
<Message Text="Subtract 10-3= $(Result)"/>
<Multiple Numbers="10;3">
<Output TaskParameter="Result" PropertyName="Result" />
</Multiple>
<Message Text="Multiple 10*3= $(Result)"/>
<Divide Numbers="1;2">
<Output TaskParameter="Result" PropertyName="Result" />
</Divide>
<Message Text="Divide 1/2= $(Result)"/>
</Target>
<Target Name="Version">
<Version VersionFile="version.txt" RevisionType="Increment">
<Output TaskParameter="Major" PropertyName="Major" />
<Output TaskParameter="Minor" PropertyName="Minor" />
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
<Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
</Target>
<Target Name="Registry">
<RegistryRead
KeyName="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework"
ValueName="InstallRoot">
<Output TaskParameter="Value" PropertyName="InstallRoot" />
</RegistryRead>
<Message Text="InstallRoot: $(InstallRoot)"/>
<RegistryWrite
KeyName="HKEY_CURRENT_USER\SOFTWARE\MSBuildTasks"
ValueName="RegistryWrite"
Value="Test Write" />
</Target>
<Target Name="Service">
<ServiceQuery ServiceName="w3svc">
<Output TaskParameter="Status" PropertyName="Status" />
</ServiceQuery>
<Message Text="Web Server: $(Status)"/>
<ServiceController ServiceName="w3svc" Action="Restart" />
</Target>
<Target Name="WebDownload">
<WebDownload FileUri="http://www.microsoft.com/default.aspx"
FileName="microsoft.html" />
</Target>
<Target Name="Attrib" DependsOnTargets="Version">
<Attrib Files="version.txt"
ReadOnly="true" Hidden="true" System="true"/>
<Attrib Files="version.txt"
Hidden="false" System="false"/>
<Attrib Files="version.txt"
Normal="true"/>
</Target>
<PropertyGroup>
<Code>
<![CDATA[
public static void ScriptMain() {
List<string> list = new List<string>();
list.Add("Happy");
list.Add("New");
list.Add("Year");
Console.WriteLine("Hello MSBuild Community Scripting World.");
foreach(string s in list)
{
Console.WriteLine(s);
}
}
]]>
</Code>
</PropertyGroup>
<Target Name="Script">
<Script Language="C#" Code="$(Code)" />
</Target>
<Target Name="Sleep">
<Message Text="Sleep: 200"/>
<Sleep Milliseconds="200" />
</Target>
<ItemGroup>
<ZipFiles Include="**\*.*" Exclude="" />
</ItemGroup>
<Target Name="Zip">
<Zip Files="@(ZipFiles)"
ZipFileName="Sample.zip" />
</Target>
<Target Name="All">
<CallTarget Targets="AssemblyInfo" />
<CallTarget Targets="Math" />
<CallTarget Targets="Version" />
<CallTarget Targets="Registry" />
<CallTarget Targets="Service" />
<CallTarget Targets="WebDownload" />
<CallTarget Targets="Attrib" />
<CallTarget Targets="Script" />
<CallTarget Targets="Sleep" />
<CallTarget Targets="Zip" />
</Target>
</Project>

74
build/build.ps1

@ -1,45 +1,27 @@
Properties {
$version = "2.0.1.0"
$webversion = "4.0.0.0"
$webconfigversion = "2.0.0.0"
$webppluginversion = "1.0.1.0"
$cairpluginversion = "1.0.0.0"
# Input and output paths
$PROJ_PATH = Resolve-Path "."
$BUILD_PATH = Resolve-Path "."
$SRC_PATH = Resolve-Path "..\src"
$NUSPECS_PATH = Join-Path $PROJ_PATH "NuSpecs"
$BIN_PATH = Join-Path $PROJ_PATH "_BuildOutput"
$PLUGINS_PATH = Join-Path $SRC_PATH "Plugins\ImageProcessor"
$NUSPECS_PATH = Join-Path $BUILD_PATH "NuSpecs"
$BIN_PATH = Join-Path $BUILD_PATH "_BuildOutput"
$NUGET_OUTPUT = Join-Path $BIN_PATH "NuGets"
$TEST_RESULTS = Join-Path $PROJ_PATH "TestResults"
$TEST_RESULTS = Join-Path $BUILD_PATH "TestResults"
# External binaries paths
$NUGET_EXE = Join-Path $SRC_PATH ".nuget\NuGet.exe"
$NUNIT_EXE = Join-Path $SRC_PATH "packages\NUnit.Runners.2.6.3\tools\nunit-console.exe"
$OPENCOVER_EXE = Join-Path $SRC_PATH "packages\OpenCover.4.5.3207\OpenCover.Console.exe"
$REPORTGEN_EXE = Join-Path $SRC_PATH "packages\ReportGenerator.1.9.1.0\ReportGenerator.exe"
$NUNITREPORT_EXE = Join-Path $PROJ_PATH "NUnitHTMLReportGenerator.exe"
$NUNITREPORT_EXE = Join-Path $BUILD_PATH "tools\NUnitHTMLReportGenerator.exe"
# list of projects
$BuildProjects = @(
"Build.ImageProcessor.proj",
"Build.ImageProcessor.Web.proj",
"Build.ImageProcessor.Plugins.WebP.proj",
"Build.ImageProcessor.Plugins.Cair.proj"
)
[xml]$PROJECTS = Get-Content ".\build.xml"
$TestProjects = @(
"ImageProcessor.UnitTests",
"ImageProcessor.Web.UnitTests"
)
$Nuspecs = @{
"ImageProcessor.nuspec" = $version ;
"ImageProcessor.Web.nuspec" = $webversion ;
"ImageProcessor.Web.Config.nuspec" = $webconfigversion ;
"ImageProcessor.Plugins.WebP.nuspec" = $webppluginversion ;
"ImageProcessor.Plugins.Cair.nuspec" = $cairpluginversion
}
}
Framework "4.0x86"
@ -67,10 +49,22 @@ task Cleanup-Binaries {
task Build-Solution -depends Cleanup-Binaries {
Write-Host "Building projects"
$BuildProjects | % {
Write-Host "Building project $_"
# build the projects
$PROJECTS.projects.project | % {
if ($_.projfile -eq $null -or $_.projfile -eq "") {
return # breaks out of ForEach-Object loop
}
$projectPath = Resolve-Path $_.folder
Write-Host "Building project $($_.name) at version $($_.version)"
# it would be possible to update more infos from the xml (description etc), so as to have all infos in one place
Update-AssemblyInfo -file (Join-Path $projectPath "Properties\AssemblyInfo.cs") -version $_.version
# using the invoke-expression on a string solves a few character escape issues
$buildCommand = "msbuild $(Join-Path $projectPath $_.projfile) /t:Build /p:Warnings=true /p:Configuration=Release /p:PipelineDependsOnBuild=False /p:OutDir=$(Join-Path $BIN_PATH $($_.output)) /clp:WarningsOnly /clp:ErrorsOnly /clp:Summary /clp:PerformanceSummary /v:Normal /nologo"
Exec {
msbuild (Join-Path $PROJ_PATH $_) /p:BUILD_RELEASE="$version"
Invoke-Expression $buildCommand
}
}
}
@ -86,11 +80,11 @@ task Build-Tests -depends Cleanup-Binaries {
# make sure the runner exes are restored
& $NUGET_EXE restore (Join-Path $SRC_PATH "ImageProcessor.sln")
# build the test projects (they don't have specific build files like the main projects)
# build the test projects
$TestProjects | % {
Write-Host "Building project $_"
Exec {
msbuild (Join-Path $SRC_PATH "$_\$_.csproj") /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /p:Warnings=true /v:Normal /nologo
msbuild (Join-Path $SRC_PATH "$_\$_.csproj") /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /p:Warnings=true /clp:WarningsOnly /clp:ErrorsOnly /v:Normal /nologo
}
}
@ -143,16 +137,30 @@ task Generate-Package -depends Build-Solution {
}
# Package the nuget
$Nuspecs.GetEnumerator() | % {
$nuspec_local_path = (Join-Path $NUSPECS_PATH $_.Key)
$PROJECTS.projects.project | % {
$nuspec_local_path = (Join-Path $NUSPECS_PATH $_.nuspec)
Write-Host "Building Nuget package from $nuspec_local_path"
# change the version values
[xml]$nuspec_contents = Get-Content $nuspec_local_path
$nuspec_contents.package.metadata.version = $_.Value
$nuspec_contents.package.metadata.version = $_.version
$nuspec_contents.Save($nuspec_local_path)
# pack the nuget
& $NUGET_EXE Pack $nuspec_local_path -OutputDirectory $NUGET_OUTPUT
}
}
# updates the AssemblyInfo file with the specified version
# http://www.luisrocha.net/2009/11/setting-assembly-version-with-windows.html
function Update-AssemblyInfo ([string]$file, [string] $version) {
$assemblyVersionPattern = 'AssemblyVersion\("[0-9]+(\.([0-9]+|\*)){1,3}"\)'
$fileVersionPattern = 'AssemblyFileVersion\("[0-9]+(\.([0-9]+|\*)){1,3}"\)'
$assemblyVersion = 'AssemblyVersion("' + $version + '")';
$fileVersion = 'AssemblyFileVersion("' + $version + '")';
(Get-Content $file) | ForEach-Object {
% {$_ -replace $assemblyVersionPattern, $assemblyVersion } |
% {$_ -replace $fileVersionPattern, $fileVersion }
} | Set-Content $file
}

43
build/build.xml

@ -0,0 +1,43 @@
<projects>
<project>
<name>ImageProcessor</name>
<version>2.0.1.0</version>
<folder>..\src\ImageProcessor</folder>
<projfile>ImageProcessor.csproj</projfile>
<output>ImageProcessor\lib\net45</output>
<nuspec>ImageProcessor.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor Web</name>
<version>4.0.0.0</version>
<folder>..\src\ImageProcessor.Web</folder>
<projfile>ImageProcessor.Web.csproj</projfile>
<output>ImageProcessor.Web\lib\net45</output>
<nuspec>ImageProcessor.Web.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor Web.config sample</name>
<version>2.0.0.0</version>
<nuspec>ImageProcessor.Web.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor Cair plugin</name>
<version>1.0.0.0</version>
<folder>..\src\Plugins\ImageProcessor\ImageProcessor.Plugins.Cair</folder>
<projfile>ImageProcessor.Plugins.Cair.csproj</projfile>
<output>ImageProcessor.Plugins.Cair\lib\net45</output>
<nuspec>ImageProcessor.Plugins.Cair.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor WebP plugin</name>
<version>1.0.1.0</version>
<folder>..\src\Plugins\ImageProcessor\ImageProcessor.Plugins.WebP</folder>
<projfile>ImageProcessor.Plugins.WebP.csproj</projfile>
<output>ImageProcessor.Plugins.WebP\lib\net45</output>
<nuspec>ImageProcessor.Plugins.WebP.nuspec</nuspec>
</project>
</projects>

0
build/NUnitHTMLReportGenerator.exe.REMOVED.git-id → build/tools/NUnitHTMLReportGenerator.exe.REMOVED.git-id

0
build/NUnitHTMLReportGenerator.exe.config → build/tools/NUnitHTMLReportGenerator.exe.config

Loading…
Cancel
Save