-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild-nuget-msbuild.xml
88 lines (75 loc) · 3.52 KB
/
build-nuget-msbuild.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Package">
<PropertyGroup>
<MSBuildNuGetTasksLib>$(MSBuildProjectDirectory)\lib\msbuild\MSBuild.NuGet.Tasks.dll</MSBuildNuGetTasksLib>
</PropertyGroup>
<UsingTask AssemblyFile="$(MSBuildNuGetTasksLib)" TaskName="MSBuild.NuGet.Tasks.ManifestUpdate" />
<UsingTask AssemblyFile="$(MSBuildNuGetTasksLib)" TaskName="MSBuild.NuGet.Tasks.Pack" />
<PropertyGroup Condition="'$(PackageVersion)' == ''">
<PackageVersion>1.0.0.2</PackageVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationName>Puzzlebox.Version.Information</ApplicationName>
<RootDir>$(MSBuildProjectDirectory)</RootDir>
<BuildDir>$(RootDir)\Build</BuildDir>
<BuildArtifactsFolder>$(BuildDir)\buildartifacts</BuildArtifactsFolder>
<PackageDir>$(BuildArtifactsFolder)\Package</PackageDir>
<ToolsDir>$(RootDir)\Tools</ToolsDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == ''">
<Configuration>Release</Configuration>
</PropertyGroup>
<!--
****************************************
* TARGETS
****************************************
-->
<!-- CLEAN -->
<Target Name="Clean">
<RemoveDir Directories="$(BuildArtifactsFolder)" Condition="Exists('$(BuildArtifactsFolder)')" />
<RemoveDir Directories="$(PackageDir)" Condition="Exists('$(PackageDir)')" />
<MakeDir Directories="$(BuildDir)" />
<MakeDir Directories="$(PackageDir)" />
</Target>
<!-- COMPILE -->
<Target Name="Compile" DependsOnTargets="Clean">
<MSBuild Projects="$(RootDir)\$(ApplicationName).sln"
Targets="Rebuild"
Properties="Configuration=$(Configuration);Platform=Any CPU;OutDir=$(BuildArtifactsFolder)\" />
</Target>
<!-- PREPAIRE FILES -->
<Target Name="PrepareFiles" DependsOnTargets="Compile">
<ItemGroup>
<BinFiles Include="$(BuildArtifactsFolder)\*.dll" Exclude="$(BuildArtifactsFolder)\*.Test.dll;$(BuildArtifactsFolder)\*.Specs.dll;$(BuildArtifactsFolder)\NewtonSoft.Json.dll" />
<ContentFiles Include="$(RootDir)\**\*.config.transform" Exclude="$(RootDir)\packages\**\*" />
<PackageFile Include="$(RootDir)\$(ApplicationName).nuspec" />
</ItemGroup>
<Copy SourceFiles="@(BinFiles)" DestinationFolder="$(BuildArtifactsFolder)\lib\net40" />
<Copy SourceFiles="@(ContentFiles)" DestinationFolder="$(BuildArtifactsFolder)\content" />
<Copy SourceFiles="@(PackageFile)" DestinationFolder="$(BuildArtifactsFolder)" />
</Target>
<!-- MANIFEST -->
<Target Name="Manifest" DependsOnTargets="PrepareFiles">
<ItemGroup>
<ManifestFiles Include="$(BuildArtifactsFolder)\lib\**\*;$(BuildArtifactsFolder)\content\**\*" Exclude="$(BuildArtifactsFolder)\$(ApplicationName).nuspec" />
</ItemGroup>
<Message Text="$(BuildArtifactsFolder)\$(ApplicationName).nuspec" />
<Message Text="$(BuildArtifactsFolder)" />
<Message Text="$(PackageVersion)" />
<Message Text="@(ManifestFiles)" />
<ManifestUpdate
ManifestFile="$(BuildArtifactsFolder)\$(ApplicationName).nuspec"
WorkingDirectory="$(BuildArtifactsFolder)"
Version="$(PackageVersion)"
Files="@(ManifestFiles)" />
<Message Text="Updated" />
</Target>
<!-- PACKAGE -->
<Target Name="Package" DependsOnTargets="Manifest">
<Pack NuGetExePath="$(RootDir)\.nuget\NuGet.exe"
ManifestFile="$(BuildArtifactsFolder)\$(ApplicationName).nuspec"
BasePath="$(BuildArtifactsFolder)"
OutputDirectory="$(PackageDir)"
Verbose="true" />
</Target>
</Project>