commit 2aae0c5a5543a61f780e79577ef46f0268e328cc
parent 8b475657fb80e1685eb2e1a1ac7e9a29e22bef7a
Author: JohnMcPMS <johnmcp@microsoft.com>
Date: Sat, 21 Mar 2020 13:27:59 -0700
Set binary version in build (#63)
Diffstat:
11 files changed, 393 insertions(+), 103 deletions(-)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
@@ -17,95 +17,119 @@ variables:
buildConfiguration: 'Release'
appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'
-steps:
-- task: NuGetToolInstaller@1
- displayName: Install Nuget
-
-- task: NuGetCommand@2
- displayName: Restore Packages
- inputs:
- restoreSolution: '$(solution)'
-
-- task: VSBuild@1
- displayName: Build Solution
- inputs:
- platform: 'x86'
- solution: '$(solution)'
- configuration: '$(buildConfiguration)'
- msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
-
-- task: CmdLine@2
- displayName: Run Tests Unpackaged
- inputs:
- script: |
- AppInstallerCLITests.exe -logto AICLI-Unpackaged.log -s -r junit -o TEST-AppInstallerCLI-Unpackaged.xml
- workingDirectory: 'src\x64\Release\AppInstallerCLITests\'
-
-- task: PublishBuildArtifacts@1
- displayName: Publish Unpackaged Log
- inputs:
- PathtoPublish: 'src\x64\Release\AppInstallerCLITests\AICLI-Unpackaged.log'
- ArtifactName: 'TestPassUnpackagedLog'
- publishLocation: 'Container'
- condition: succeededOrFailed()
-
-- task: PublishBuildArtifacts@1
- displayName: Publish Unpackaged Output
- inputs:
- PathtoPublish: 'src\x64\Release\AppInstallerCLITests\TEST-AppInstallerCLI-Unpackaged.xml'
- ArtifactName: 'TestPassUnpackagedOutput'
- publishLocation: 'Container'
- condition: succeededOrFailed()
-
-- task: PowerShell@2
- displayName: Install Dependencies
- inputs:
- targetType: 'inline'
- script: |
- Add-AppxPackage AppInstallerCLIPackage_0.0.0.2_Test\Dependencies\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx
- workingDirectory: $(appxPackageDir)
-
-- task: PowerShell@2
- displayName: Run Tests Packaged
- inputs:
- filePath: 'src\AppInstallerCLITests\Run-TestsInPackage.ps1'
- arguments: '-Args "~[pips]" -BuildRoot x64\Release -PackageRoot AppInstallerCLIPackage\bin\x64\Release -LogTarget x64\Release\AICLI-Packaged.log -TestResultsTarget x64\Release\TEST-AppInstallerCLI-Packaged.xml -ScriptWait'
- workingDirectory: 'src'
-
-- task: PublishBuildArtifacts@1
- displayName: Publish Packaged Log
- inputs:
- PathtoPublish: 'src\x64\Release\AICLI-Packaged.log'
- ArtifactName: 'TestPassPackagedLog'
- publishLocation: 'Container'
- condition: succeededOrFailed()
-
-- task: PublishBuildArtifacts@1
- displayName: Publish Packaged Output
- inputs:
- PathtoPublish: 'src\x64\Release\TEST-AppInstallerCLI-Packaged.xml'
- ArtifactName: 'TestPassPackagedOutput'
- publishLocation: 'Container'
- condition: succeededOrFailed()
-
-- task: PublishTestResults@2
- displayName: Publish Test Results
- inputs:
- testResultsFormat: 'JUnit'
- testResultsFiles: '**/TEST-*.xml'
- failTaskOnFailedTests: true
- condition: succeededOrFailed()
-
-- task: PublishBuildArtifacts@1
- displayName: Publish CLI Binary
- inputs:
- PathtoPublish: 'src\x64\Release\AppInstallerCLI\AppInstallerCLI.exe'
- ArtifactName: 'AppInstallerCLI.exe'
- publishLocation: 'Container'
-
-- task: ComponentGovernanceComponentDetection@0
- displayName: Component Governance
- inputs:
- scanType: 'Register'
- verbosity: 'Verbose'
- alertWarningLevel: 'High'-
\ No newline at end of file
+jobs:
+- job: 'GetReleaseTag'
+ variables:
+ runCodesignValidationInjection: ${{ false }}
+ steps:
+ - task: PowerShell@2
+ name: 'GetTag'
+ displayName: Get Release Tag
+ inputs:
+ filePath: 'src\binver\Update-BinVer.ps1'
+ arguments: '-OutVar'
+ workingDirectory: 'src'
+
+- job: 'Build'
+ dependsOn: 'GetReleaseTag'
+ variables:
+ BuildVer: $[counter(dependencies.GetReleaseTag.outputs['GetTag.tag'], 1)]
+ steps:
+ - task: NuGetToolInstaller@1
+ displayName: Install Nuget
+
+ - task: NuGetCommand@2
+ displayName: Restore Packages
+ inputs:
+ restoreSolution: '$(solution)'
+
+ - task: PowerShell@2
+ displayName: Update Binary Version
+ inputs:
+ filePath: 'src\binver\Update-BinVer.ps1'
+ arguments: '-TargetFile binver\binver\version.h -BuildVersion $(BuildVer)'
+ workingDirectory: 'src'
+
+ - task: VSBuild@1
+ displayName: Build Solution
+ inputs:
+ platform: 'x86'
+ solution: '$(solution)'
+ configuration: '$(buildConfiguration)'
+ msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
+
+ - task: CmdLine@2
+ displayName: Run Tests Unpackaged
+ inputs:
+ script: |
+ AppInstallerCLITests.exe -logto AICLI-Unpackaged.log -s -r junit -o TEST-AppInstallerCLI-Unpackaged.xml
+ workingDirectory: 'src\x64\Release\AppInstallerCLITests\'
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Unpackaged Log
+ inputs:
+ PathtoPublish: 'src\x64\Release\AppInstallerCLITests\AICLI-Unpackaged.log'
+ ArtifactName: 'TestPassUnpackagedLog'
+ publishLocation: 'Container'
+ condition: succeededOrFailed()
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Unpackaged Output
+ inputs:
+ PathtoPublish: 'src\x64\Release\AppInstallerCLITests\TEST-AppInstallerCLI-Unpackaged.xml'
+ ArtifactName: 'TestPassUnpackagedOutput'
+ publishLocation: 'Container'
+ condition: succeededOrFailed()
+
+ - task: PowerShell@2
+ displayName: Install Dependencies
+ inputs:
+ targetType: 'inline'
+ script: |
+ Add-AppxPackage AppInstallerCLIPackage_0.0.0.2_Test\Dependencies\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx
+ workingDirectory: $(appxPackageDir)
+
+ - task: PowerShell@2
+ displayName: Run Tests Packaged
+ inputs:
+ filePath: 'src\AppInstallerCLITests\Run-TestsInPackage.ps1'
+ arguments: '-Args "~[pips]" -BuildRoot x64\Release -PackageRoot AppInstallerCLIPackage\bin\x64\Release -LogTarget x64\Release\AICLI-Packaged.log -TestResultsTarget x64\Release\TEST-AppInstallerCLI-Packaged.xml -ScriptWait'
+ workingDirectory: 'src'
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Packaged Log
+ inputs:
+ PathtoPublish: 'src\x64\Release\AICLI-Packaged.log'
+ ArtifactName: 'TestPassPackagedLog'
+ publishLocation: 'Container'
+ condition: succeededOrFailed()
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Packaged Output
+ inputs:
+ PathtoPublish: 'src\x64\Release\TEST-AppInstallerCLI-Packaged.xml'
+ ArtifactName: 'TestPassPackagedOutput'
+ publishLocation: 'Container'
+ condition: succeededOrFailed()
+
+ - task: PublishTestResults@2
+ displayName: Publish Test Results
+ inputs:
+ testResultsFormat: 'JUnit'
+ testResultsFiles: '**/TEST-*.xml'
+ failTaskOnFailedTests: true
+ condition: succeededOrFailed()
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish CLI Binary
+ inputs:
+ PathtoPublish: 'src\x64\Release\AppInstallerCLI\AppInstallerCLI.exe'
+ ArtifactName: 'AppInstallerCLI.exe'
+ publishLocation: 'Container'
+
+ - task: ComponentGovernanceComponentDetection@0
+ displayName: Component Governance
+ inputs:
+ scanType: 'Register'
+ verbosity: 'Verbose'
+ alertWarningLevel: 'High'+
\ No newline at end of file
diff --git a/src/AppInstallerCLI.sln b/src/AppInstallerCLI.sln
@@ -31,10 +31,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AppInstallerSQLiteIndexUtil
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AppInstallerTestExeInstaller", "AppInstallerTestExeInstaller\AppInstallerTestExeInstaller.vcxproj", "{6CB84692-5994-407D-B9BD-9216AF77FE83}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "binver", "binver\binver.vcxitems", "{6E36DDD7-1602-474E-B1D7-D0A7E1D5AD86}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
catch2\catch2.vcxitems*{5295e21e-9868-4de2-a177-fbb97b36579b}*SharedItemsImports = 9
+ binver\binver.vcxitems*{5b6f90df-fd19-4bae-83d9-24dad128e777}*SharedItemsImports = 4
+ binver\binver.vcxitems*{6e36ddd7-1602-474e-b1d7-d0a7e1d5ad86}*SharedItemsImports = 9
catch2\catch2.vcxitems*{89b1aab4-2bbc-4b65-9ed7-a01d5cf88230}*SharedItemsImports = 4
+ binver\binver.vcxitems*{fb313532-38b0-4676-9303-ab200aa13576}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
@@ -198,6 +203,7 @@ Global
GlobalSection(NestedProjects) = preSolution
{5295E21E-9868-4DE2-A177-FBB97B36579B} = {60618CAC-2995-4DF9-9914-45C6FC02C995}
{8BB94BB8-374F-4294-BCA1-C7811514A6B7} = {60618CAC-2995-4DF9-9914-45C6FC02C995}
+ {6E36DDD7-1602-474E-B1D7-D0A7E1D5AD86} = {8D53D749-D51C-46F8-A162-9371AAA6C2E7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B6FDB70C-A751-422C-ACD1-E35419495857}
diff --git a/src/AppInstallerCLI/AppInstallerCLI.vcxproj b/src/AppInstallerCLI/AppInstallerCLI.vcxproj
@@ -69,6 +69,7 @@
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
+ <Import Project="..\binver\binver.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
diff --git a/src/AppInstallerCommonCore/AppInstallerCommonCore.vcxproj b/src/AppInstallerCommonCore/AppInstallerCommonCore.vcxproj
@@ -122,9 +122,9 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD</PreprocessorDefinitions>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</TreatWarningAsError>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</TreatWarningAsError>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</TreatWarningAsError>
@@ -139,7 +139,7 @@
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions);CLICOREDLLBUILD</PreprocessorDefinitions>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</TreatWarningAsError>
</ClCompile>
<Link>
@@ -152,10 +152,10 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);CLICOREDLLBUILD</PreprocessorDefinitions>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir);$(ProjectDir)Public;$(ProjectDir)Telemetry;$(ProjectDir)..\binver;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</TreatWarningAsError>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</TreatWarningAsError>
<TreatWarningAsError Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</TreatWarningAsError>
diff --git a/src/AppInstallerCommonCore/Runtime.cpp b/src/AppInstallerCommonCore/Runtime.cpp
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
#include "pch.h"
+#include <binver/version.h>
#include "Public/AppInstallerRuntime.h"
#include "Public/AppInstallerStrings.h"
@@ -162,7 +163,7 @@ namespace AppInstaller::Runtime
}
else
{
- return "unknown"s;
+ return VER_FILE_VERSION_STR;
}
}
diff --git a/src/AppInstallerSQLiteIndexUtil/AppInstallerSQLiteIndexUtil.vcxproj b/src/AppInstallerSQLiteIndexUtil/AppInstallerSQLiteIndexUtil.vcxproj
@@ -68,7 +68,9 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
- <ImportGroup Label="Shared" />
+ <ImportGroup Label="Shared">
+ <Import Project="..\binver\binver.vcxitems" Label="Shared" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
diff --git a/src/binver/Update-BinVer.ps1 b/src/binver/Update-BinVer.ps1
@@ -0,0 +1,88 @@
+<#
+.SYNOPSIS
+ Updates the given version header file to match the version info parse from git.
+.DESCRIPTION
+ Uses "git describe --tags" to determine the current version, then updates the given file
+ to match. See the existing version.h for the format.
+.PARAMETER TargetFile
+ The file to update with version information. If not given, simply outputs the version info.
+.PARAMETER BuildVersion
+ The build version to use.
+.PARAMETER OutVar
+ Output a pipeline variable with the version.
+#>
+param(
+ [Parameter(Mandatory=$false)]
+ [string]$TargetFile,
+
+ [Parameter(Mandatory=$false)]
+ [int]$BuildVersion = 0,
+
+ [switch]$OutVar
+)
+
+$ErrorActionPreference = 'SilentlyContinue'
+$Local:GitDescribeText = git describe --tags;
+$ErrorActionPreference = 'Continue'
+Write-Host "Git describe: $Local:GitDescribeText"
+
+$Local:Major = 0;
+$Local:Minor = 0;
+$Local:Revision = 0;
+
+if ($Local:GitDescribeText -match "v([0-9]+)\.([0-9]+)\.([0-9]+)")
+{
+ $Local:Major = $Matches[1]
+ $Local:Minor = $Matches[2]
+ $Local:Revision = $Matches[3]
+}
+else
+{
+ Write-Host "Describe did not match regex; using zeros"
+}
+
+Write-Host "Using version: $Local:Major.$Local:Minor.$Local:Revision.$BuildVersion"
+
+if ($OutVar)
+{
+ Write-Host "##vso[task.setvariable variable=tag;isOutput=true]$Local:Major.$Local:Minor.$Local:Revision"
+}
+
+if (![String]::IsNullOrEmpty($TargetFile))
+{
+ $Local:FullPath = Resolve-Path $TargetFile
+ Write-Host "Updating file: $Local:FullPath"
+ if (Test-Path $TargetFile)
+ {
+ $Local:ResultContent = ""
+ foreach ($Local:line in [System.IO.File]::ReadLines($Local:FullPath))
+ {
+ if ($Local:line.StartsWith("#define VERSION_MAJOR"))
+ {
+ $Local:ResultContent += "#define VERSION_MAJOR $Local:Major";
+ }
+ elseif ($Local:line.StartsWith("#define VERSION_MINOR"))
+ {
+ $Local:ResultContent += "#define VERSION_MINOR $Local:Minor";
+ }
+ elseif ($Local:line.StartsWith("#define VERSION_REVISION"))
+ {
+ $Local:ResultContent += "#define VERSION_REVISION $Local:Revision";
+ }
+ elseif ($Local:line.StartsWith("#define VERSION_BUILD"))
+ {
+ $Local:ResultContent += "#define VERSION_BUILD $BuildVersion";
+ }
+ else
+ {
+ $Local:ResultContent += $Local:line;
+ }
+ $Local:ResultContent += [System.Environment]::NewLine;
+ }
+ Set-Content -Path $Local:FullPath -Value $Local:ResultContent
+ }
+ else
+ {
+ Write-Error "Did not find target file: $TargetFile"
+ }
+}
diff --git a/src/binver/binver.vcxitems b/src/binver/binver.vcxitems
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Label="Globals">
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ <HasSharedItems>true</HasSharedItems>
+ <ItemsProjectGuid>{6e36ddd7-1602-474e-b1d7-d0a7e1d5ad86}</ItemsProjectGuid>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)include</AdditionalIncludeDirectories>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ProjectCapability Include="SourceItemsFromImports" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(MSBuildThisFileDirectory)binver\resource.h" />
+ <ClInclude Include="$(MSBuildThisFileDirectory)binver\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="$(MSBuildThisFileDirectory)binver\version.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="$(MSBuildThisFileDirectory)Update-BinVer.ps1" />
+ </ItemGroup>
+</Project>+
\ No newline at end of file
diff --git a/src/binver/binver/resource.h b/src/binver/binver/resource.h
@@ -0,0 +1,14 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by version.rc
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/src/binver/binver/version.h b/src/binver/binver/version.h
@@ -0,0 +1,31 @@
+#define STRINGIZE2(s) #s
+#define STRINGIZE(s) STRINGIZE2(s)
+
+#define VERSION_MAJOR 0
+#define VERSION_MINOR 0
+#define VERSION_REVISION 0
+#define VERSION_BUILD 2
+
+#define VER_FILE_DESCRIPTION_STR "App Installer CLI"
+#define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
+#define VER_FILE_VERSION_STR STRINGIZE(VERSION_MAJOR) \
+ "." STRINGIZE(VERSION_MINOR) \
+ "." STRINGIZE(VERSION_REVISION) \
+ "." STRINGIZE(VERSION_BUILD) \
+
+#define VER_PRODUCTNAME_STR "App Installer CLI"
+#define VER_PRODUCT_VERSION VER_FILE_VERSION
+#define VER_PRODUCT_VERSION_STR VER_FILE_VERSION_STR
+#define VER_ORIGINAL_FILENAME_STR "AppInstallerCLI.exe"
+#define VER_INTERNAL_NAME_STR VER_ORIGINAL_FILENAME_STR
+#define VER_COPYRIGHT_STR "Copyright (c) Microsoft Corporation"
+
+#ifdef _DEBUG
+#define VER_VER_DEBUG VS_FF_DEBUG
+#else
+#define VER_VER_DEBUG 0
+#endif
+
+#define VER_FILEOS VOS_NT_WINDOWS32
+#define VER_FILEFLAGS VER_VER_DEBUG
+#define VER_FILETYPE VFT_APP
diff --git a/src/binver/binver/version.rc b/src/binver/binver/version.rc
@@ -0,0 +1,96 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+#include "version.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "winres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (United States) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""winres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION VER_FILE_VERSION
+ PRODUCTVERSION VER_PRODUCT_VERSION
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS VER_FILEFLAGS
+ FILEOS VER_FILEOS
+ FILETYPE VER_FILETYPE
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "FileDescription", VER_FILE_DESCRIPTION_STR "\0"
+ VALUE "FileVersion", VER_FILE_VERSION_STR "\0"
+ VALUE "InternalName", VER_INTERNAL_NAME_STR "\0"
+ VALUE "LegalCopyright", VER_COPYRIGHT_STR "\0"
+ VALUE "OriginalFilename", VER_ORIGINAL_FILENAME_STR "\0"
+ VALUE "ProductName", VER_PRODUCTNAME_STR
+ VALUE "ProductVersion", VER_PRODUCT_VERSION_STR "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // English (United States) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+