1+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Version" ToolsVersion="15">
2+ <PropertyGroup>
3+ <PackageName>Shuttle.Core.Threading</PackageName>
4+ <PackageSource Condition="$(PackageSource) == ''">https://www.nuget.org</PackageSource>
5+ <Configuration Condition="$(Configuration) == ''">Release</Configuration>
6+ </PropertyGroup>
7+
8+ <Import Project="Shuttle.NuGetPackager.targets" />
9+
10+ <ItemGroup>
11+ <ProjectReference Include="..\$(PackageName).csproj" />
12+ </ItemGroup>
13+
14+ <Target Name="Build">
15+ <MSBuild Projects="@(ProjectReference)" Targets="Rebuild" Properties="Configuration=Debug;Platform=AnyCPU" />
16+ <MSBuild Projects="@(ProjectReference)" Targets="Rebuild" Properties="Configuration=Release;Platform=AnyCPU" />
17+ </Target>
18+
19+ <Target Name="Version">
20+ <Prompt Text="Enter semantic version:" Condition="$(SemanticVersion) == ''">
21+ <Output TaskParameter="UserInput" PropertyName="SemanticVersion" />
22+ </Prompt>
23+
24+ <Error Text="Please enter a version number." Condition="$(SemanticVersion) == ''" />
25+
26+ <SemanticVersion Value="$(SemanticVersion)">
27+ <Output TaskParameter="VersionCore" PropertyName="SemanticVersionCore" />
28+ <Output TaskParameter="Prerelease" PropertyName="SemanticVersionPrerelease" />
29+ <Output TaskParameter="BuildMetadata" PropertyName="SemanticVersionBuildMetadata" />
30+ </SemanticVersion>
31+
32+ <Copy SourceFiles="AssemblyInfo.cs.template" DestinationFiles="..\Properties\AssemblyInfo.cs" SkipUnchangedFiles="false" />
33+
34+ <RegexFindAndReplace Files="..\Properties\AssemblyInfo.cs" FindExpression="#\{SemanticVersionCore\}#"
35+ ReplacementText="$(SemanticVersionCore)" />
36+ <RegexFindAndReplace Files="..\Properties\AssemblyInfo.cs" FindExpression="#\{SemanticVersion\}#"
37+ ReplacementText="$(SemanticVersion)" />
38+ <RegexFindAndReplace Files="..\Properties\AssemblyInfo.cs" FindExpression="#\{Year\}#"
39+ ReplacementText="$([System.DateTime]::Now.ToString(`yyyy`))" />
40+
41+ <Copy SourceFiles="package.nuspec.template" DestinationFiles="package.nuspec" SkipUnchangedFiles="false" />
42+
43+ <RegexFindAndReplace Files="package.nuspec" FindExpression="#\{SemanticVersion\}#"
44+ ReplacementText="$(SemanticVersion)" />
45+ <RegexFindAndReplace Files="package.nuspec" FindExpression="#\{Year\}#"
46+ ReplacementText="$([System.DateTime]::Now.ToString(`yyyy`))" />
47+
48+ <SetNuGetPackageVersions Files="package.nuspec" ProjectFile="..\$(PackageName).csproj" />
49+ </Target>
50+
51+ <Target Name="Pack" DependsOnTargets="Build">
52+ <Error
53+ Text="Before executing the 'Package' target first execute the 'Version' target to set the relevant semantic version in all applicable files."
54+ Condition="!Exists('package.nuspec')" />
55+
56+ <ItemGroup>
57+ <NuGetBinaries Include="..\bin\$(Configuration)\**\$(PackageName).dll" />
58+ </ItemGroup>
59+
60+ <RemoveDir Directories="release" />
61+
62+ <Copy SourceFiles="package.nuspec" DestinationFolder="release\" SkipUnchangedFiles="false" />
63+ <Copy SourceFiles="@(NuGetBinaries)" DestinationFolder="release\lib\%(RecursiveDir)" SkipUnchangedFiles="false" />
64+
65+ <Exec Command="nuget pack release\package.nuspec -OutputDirectory release -NoPackageAnalysis" />
66+ </Target>
67+
68+ <Target Name="Push" DependsOnTargets="Version">
69+ <MSBuild
70+ Projects="$(MSBuildProjectFile)"
71+ Targets="Pack"
72+ Properties="SemanticVersion=$(SemanticVersion)" />
73+
74+ <Exec
75+ Command="nuget push release\$(PackageName).$(SemanticVersion).nupkg -source $(PackageSource)" />
76+ </Target>
77+
78+ <Target Name="Bump" DependsOnTargets="Version">
79+ <MSBuild
80+ Projects="$(MSBuildProjectFile)"
81+ Targets="Pack"
82+ Properties="SemanticVersion=$(SemanticVersion)" />
83+
84+ <ItemGroup>
85+ <PackageFile Include="release\$(PackageName).*.nupkg" />
86+ </ItemGroup>
87+
88+ <MakeDir Directories="$(NuGetPackageSourceFolder)" Condition="$(NuGetPackageSourceFolder) != ''" />
89+
90+ <Copy
91+ SourceFiles="@(PackageFile)"
92+ DestinationFolder="$(NuGetPackageSourceFolder)"
93+ SkipUnchangedFiles="false"
94+ Condition="$(NuGetPackageSourceFolder) != ''" />
95+ </Target>
96+
97+ <Target Name="Flush">
98+ <ItemGroup>
99+ <PackageFolder Include="$(UserProfile)\.nuget\packages\$(PackageName)" />
100+ </ItemGroup>
101+
102+ <RemoveDir Directories="@(PackageFolder)" />
103+ </Target>
104+ </Project>
0 commit comments