Skip to content

Commit 3ad609f

Browse files
authored
Merge pull request #206 from anjdreas/add-strong-name-sign
Add strong name signed core nuget
2 parents 2c30890 + 4089e95 commit 3ad609f

23 files changed

+260
-99
lines changed

Build/UnitsNet.Serialization.JsonNet.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</dependencies>
2424
</metadata>
2525
<files>
26-
<file src="Artifacts\Bin\Src\AnyCPU_Release\**\UnitsNet.Serialization.JsonNet.dll" target="lib" />
26+
<file src="Artifacts\Bin\Src-unsigned\AnyCPU_Release\**\UnitsNet.Serialization.JsonNet.dll" target="lib" />
2727
<file src="UnitsNet.Serialization.JsonNet\**\*.cs" exclude="UnitsNet.Serialization.JsonNet\**\obj\**\*.cs"
2828
target="src" />
2929
</files>

Build/UnitsNet.Signed.nuspec

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
3+
<metadata>
4+
<id>UnitsNet.Signed</id>
5+
<version>3.48.1</version>
6+
<title>Units.NET (signed)</title>
7+
<authors>Andreas Gullberg Larsen</authors>
8+
<owners>Andreas Gullberg Larsen</owners>
9+
<licenseUrl>https://github.com/anjdreas/UnitsNet/blob/master/LICENSE</licenseUrl>
10+
<projectUrl>https://github.com/anjdreas/UnitsNet</projectUrl>
11+
<requireLicenseAcceptance>false</requireLicenseAcceptance>
12+
<description>Strong name signed edition of Units.NET. Only use this if you need a signed version.</description>
13+
<summary>Strong name signed edition of Units.NET.</summary>
14+
<iconUrl>https://raw.githubusercontent.com/anjdreas/UnitsNet/ce85185429be345d77eb2ce09c99d59cc9ab8aed/Docs/Images/logo-32.png</iconUrl>
15+
<releaseNotes>
16+
</releaseNotes>
17+
<copyright>Copyright © 2015 Andreas Gullberg Larsen</copyright>
18+
<language>en-US</language>
19+
<tags>unit units measurement si metric imperial abbreviation abbreviations convert conversion parse c# .net immutable</tags>
20+
</metadata>
21+
<files>
22+
<file src="Artifacts\Bin\Src-signed\AnyCPU_Release\**\UnitsNet.dll" target="lib" />
23+
<file src="UnitsNet\**\*.cs" exclude="UnitsNet\**\obj\**\*.cs" target="src" />
24+
</files>
25+
</package>

Build/UnitsNet.WindowsRuntimeComponent.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<tags>unit units measurement si metric imperial abbreviation abbreviations convert conversion parse c# .net immutable uwp uap winrt win10 windows runtime component</tags>
2020
</metadata>
2121
<files>
22-
<file src="Artifacts\Bin\Src\AnyCPU_Release\uap10.0\UnitsNet.*" target="lib/uap10.0" />
22+
<file src="Artifacts\Bin\Src-unsigned\AnyCPU_Release\uap10.0\UnitsNet.*" target="lib/uap10.0" />
2323
<file src="UnitsNet\**\*.cs" exclude="UnitsNet\**\obj\**\*.cs" target="src" />
2424
</files>
2525
</package>

Build/UnitsNet.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<tags>unit units measurement si metric imperial abbreviation abbreviations convert conversion parse c# .net immutable</tags>
2020
</metadata>
2121
<files>
22-
<file src="Artifacts\Bin\Src\AnyCPU_Release\**\UnitsNet.dll" target="lib" />
22+
<file src="Artifacts\Bin\Src-unsigned\AnyCPU_Release\**\UnitsNet.dll" target="lib" />
2323
<file src="UnitsNet\**\*.cs" exclude="UnitsNet\**\obj\**\*.cs" target="src" />
2424
</files>
2525
</package>

Build/build-all-debug.bat

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1-
SET ROOT=%~dp0..
2-
"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" %ROOT%\Build\all.msbuild /verbosity:normal /p:Configuration=Debug /p:Platform="AnyCPU" /target:CleanAndBuild /p:RestorePackages=false
1+
@echo off
2+
set ROOT=%~dp0..
3+
set SrcDir="%ROOT%\Artifacts\Bin\Src"
4+
set SrcUnsignedDir="%ROOT%\Artifacts\Bin\Src-unsigned"
5+
6+
echo Build unsigned binaries.
7+
"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" %ROOT%\Build\build-all.msbuild /verbosity:normal /p:Configuration=Debug /target:Clean;Rebuild /p:RestorePackages=false
38
if %errorlevel% neq 0 exit /b %errorlevel%
9+
10+
echo Move unsigned binaries to: %SrcUnsignedDir%
11+
if exist %SrcUnsignedDir% rmdir /Q /S %SrcUnsignedDir%
12+
ren %SrcDir% "Src-unsigned"
13+
if %errorlevel% neq 0 exit /b %errorlevel%

Build/build-all-release.bat

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
@echo off
2-
SET ROOT=%~dp0..
3-
"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" %ROOT%\Build\all.msbuild /verbosity:normal /p:Configuration=Release /p:Platform="AnyCPU" /target:CleanAndBuild /p:RestorePackages=false
2+
set ROOT=%~dp0..
3+
set SrcDir="%ROOT%\Artifacts\Bin\Src"
4+
set SrcUnsignedDir="%ROOT%\Artifacts\Bin\Src-unsigned"
5+
6+
echo Build unsigned binaries.
7+
"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" %ROOT%\Build\build-all.msbuild /verbosity:normal /p:Configuration=Release /target:Clean;Rebuild /p:RestorePackages=false
48
if %errorlevel% neq 0 exit /b %errorlevel%
9+
10+
echo Move unsigned binaries to: %SrcUnsignedDir%
11+
if exist %SrcUnsignedDir% rmdir /Q /S %SrcUnsignedDir%
12+
ren %SrcDir% "Src-unsigned"
13+
if %errorlevel% neq 0 exit /b %errorlevel%

Build/all.msbuild renamed to Build/build-all.msbuild

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,37 @@
66
<Configuration>Release</Configuration>
77
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
88
<RootPath>$(MSBuildProjectDirectory)\..\</RootPath>
9-
</PropertyGroup>
10-
11-
<Target Name="CleanAndBuild" DependsOnTargets="Clean;CompileProjects" />
12-
13-
<Target Name="Clean">
14-
<MSBuild Projects="@(AllProjects)" Targets="Clean" />
15-
<RemoveDir Directories="$(SrcBinPath)" />
16-
</Target>
17-
18-
<Target Name="CompileProjects">
19-
<MSBuild Projects="
9+
<Projects>
2010
$(RootPath)\UnitsNet\UnitsNet.Net35.csproj;
2111
$(RootPath)\UnitsNet\UnitsNet.Portable40.csproj;
2212
$(RootPath)\UnitsNet\UnitsNet.NetStandard10.csproj;
2313
$(RootPath)\UnitsNet\UnitsNet.WindowsRuntimeComponent.csproj;
2414
$(RootPath)\UnitsNet.Serialization.JsonNet\UnitsNet.Serialization.JsonNet.Net35.csproj;
2515
$(RootPath)\UnitsNet.Tests\UnitsNet.Tests.csproj;
2616
$(RootPath)\UnitsNet.Tests\UnitsNet.WindowsRuntimeComponent.Tests.csproj;
27-
$(RootPath)\UnitsNet.Serialization.JsonNet.Tests\UnitsNet.Serialization.JsonNet.Tests.csproj"
17+
$(RootPath)\UnitsNet.Serialization.JsonNet.Tests\UnitsNet.Serialization.JsonNet.Tests.csproj
18+
</Projects>
19+
</PropertyGroup>
20+
21+
<Target Name="Clean">
22+
<MSBuild
23+
Projects="$(Projects)"
24+
Targets="Clean" />
25+
</Target>
26+
27+
<Target Name="Build">
28+
<MSBuild
29+
Projects="$(Projects)"
30+
Targets="Build"
31+
Properties="Platform=$(Platform);Configuration=$(Configuration);VisualStudioVersion=$(VisualStudioVersion);SkipGenerateUnits=True" />
32+
</Target>
2833

29-
Properties="Platform=$(Platform);Configuration=$(Configuration);VisualStudioVersion=$(VisualStudioVersion)"
30-
Targets="Build">
31-
</MSBuild>
34+
<Target Name="Rebuild">
35+
<MSBuild
36+
Projects="$(Projects)"
37+
Targets="Rebuild"
38+
Properties="Platform=$(Platform);Configuration=$(Configuration);VisualStudioVersion=$(VisualStudioVersion);SkipGenerateUnits=True"
39+
/>
3240
</Target>
3341

34-
</Project>
42+
</Project>

Build/build-signed-release.bat

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@echo off
2+
set StrongNameSignFile="%1"
3+
set errorlevel=0
4+
set ROOT=%~dp0..
5+
set SrcDir="%ROOT%\Artifacts\Bin\Src"
6+
set SrcSignedDir="%ROOT%\Artifacts\Bin\Src-signed"
7+
8+
if exist "%StrongNameSignFile%" (
9+
echo Build signed binaries with key: %StrongNameSignFile%
10+
"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" %ROOT%\Build\build-signed.msbuild /verbosity:Normal /p:Configuration=Release /target:Clean;Rebuild /p:RestorePackages=false /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=%StrongNameSignFile%
11+
12+
if %errorlevel% neq 0 (
13+
echo Error: %errorlevel%
14+
exit /b %errorlevel%
15+
)
16+
17+
echo %SrcDir%
18+
echo Move signed binaries to: %SrcSignedDir%
19+
@echo on
20+
if exist %SrcSignedDir% rmdir /Q /S %SrcSignedDir%
21+
ren %SrcDir% "Src-signed"
22+
@echo off
23+
) else (
24+
echo NO STRONG NAME SIGNING FILE: %StrongNameSignFile%
25+
)

Build/build-signed.msbuild

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="CompileProjects" ToolsVersion="14.0">
3+
4+
<PropertyGroup>
5+
<Platform>AnyCPU</Platform>
6+
<Configuration>Release</Configuration>
7+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
8+
<RootPath>$(MSBuildProjectDirectory)\..\</RootPath>
9+
<Projects>
10+
$(RootPath)\UnitsNet\UnitsNet.Net35.csproj;
11+
$(RootPath)\UnitsNet\UnitsNet.Portable40.csproj;
12+
$(RootPath)\UnitsNet\UnitsNet.NetStandard10.csproj;
13+
$(RootPath)\UnitsNet\UnitsNet.WindowsRuntimeComponent.csproj;
14+
$(RootPath)\UnitsNet.Serialization.JsonNet\UnitsNet.Serialization.JsonNet.Net35.csproj
15+
</Projects>
16+
</PropertyGroup>
17+
18+
<Target Name="Clean">
19+
<MSBuild
20+
Projects="$(Projects)"
21+
Targets="Clean" />
22+
</Target>
23+
24+
<Target Name="Build">
25+
<MSBuild
26+
Projects="$(Projects)"
27+
Targets="Build"
28+
Properties="Platform=$(Platform);Configuration=$(Configuration);VisualStudioVersion=$(VisualStudioVersion);SkipGenerateUnits=True" />
29+
</Target>
30+
31+
<Target Name="Rebuild">
32+
<MSBuild
33+
Projects="$(Projects)"
34+
Targets="Rebuild"
35+
Properties="Platform=$(Platform);Configuration=$(Configuration);VisualStudioVersion=$(VisualStudioVersion);SkipGenerateUnits=True"
36+
/>
37+
</Target>
38+
39+
</Project>

Build/build.bat

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,53 @@
11
@echo off
2-
SET ROOT=%~dp0..
2+
rem This file builds everything and is run on the build server as part of
3+
rem building, testing and packing nugets for all master commits and pull requests.
4+
5+
rem Publishing nugets is handled by nuget-publish.bat and run by the build server
6+
rem on the master branch.
7+
8+
rem Optional strong name signing .pfx key file to produce signed binaries and nugets.
9+
set StrongNameSignFile="%1"
10+
11+
set ROOT=%~dp0..
12+
13+
if exist %StrongNameSignFile% (
14+
echo Using strong name signing key file: %StrongNameSignFile%
15+
) else (
16+
echo No strong name signing key file specified. Will only build unsigned binaries and nugets.
17+
)
318

419
if exist %ROOT%\Artifacts rmdir /Q /S %ROOT%\Artifacts
520

21+
rem Regenerate all source code and test stubs before building
22+
rem since there is no guarantee that merged pull requests
23+
rem have properly regenerated code.
24+
call %ROOT%\GenerateUnits.bat
25+
if %errorlevel% neq 0 exit /b %errorlevel%
26+
27+
rem Update AsseemblyInfo.cs versions from .nuspec files
628
call powershell -NoProfile %ROOT%\Build\UpdateAssemblyInfo.ps1
729
if %errorlevel% neq 0 exit /b %errorlevel%
830

31+
rem Restore nugets
932
call %ROOT%\Build\nuget-restore.bat
1033
if %errorlevel% neq 0 exit /b %errorlevel%
1134

35+
rem Build source and tests
1236
call %ROOT%\Build\build-all-release.bat
1337
if %errorlevel% neq 0 exit /b %errorlevel%
1438

39+
rem Run all tests
1540
call %ROOT%\Build\run-tests.bat
1641
if %errorlevel% neq 0 exit /b %errorlevel%
1742

43+
rem Only build signed binaries if tests pass
44+
call %ROOT%\Build\build-signed-release.bat %StrongNameSignFile%
45+
if %errorlevel% neq 0 exit /b %errorlevel%
46+
47+
rem Pack nugets for both signed and unsigned binaries
1848
call %ROOT%\Build\pack-nuget.bat
1949
if %errorlevel% neq 0 exit /b %errorlevel%
2050

51+
rem Create a zip bundle of everything, becomes available in TeamCity for download
2152
call %ROOT%\Build\zip-artifacts.bat
2253
if %errorlevel% neq 0 exit /b %errorlevel%

0 commit comments

Comments
 (0)