[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH] Invoke genfiles.ps1 from msbuild



The patch adds a new 'version.vcxproj' which other projects depend on.
This project's sole job is to invoke genfiles.ps1 to set up version.h and
xenbus.inf. Correspondingly the direct invocation of genfiles.ps1 is
removed from build.ps1 and equivalent functionality is removed from
build.py.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 build.ps1                      |  28 ++++----
 build.py                       |  87 -----------------------
 genfiles.ps1                   | 125 --------------------------------
 scripts/genfiles.ps1           | 103 +++++++++++++++++++++++++++
 vs2015/version/version.vcxproj |  19 +++++
 vs2015/xenbus.sln              |  46 +++++++-----
 vs2017/version/version.vcxproj |  16 +++++
 vs2017/xenbus.sln              | 157 +++++++++++++++++++++++------------------
 8 files changed, 271 insertions(+), 310 deletions(-)
 delete mode 100644 genfiles.ps1
 create mode 100644 scripts/genfiles.ps1
 create mode 100644 vs2015/version/version.vcxproj
 create mode 100644 vs2017/version/version.vcxproj

diff --git a/build.ps1 b/build.ps1
index bea93cc..194d239 100644
--- a/build.ps1
+++ b/build.ps1
@@ -24,12 +24,6 @@ Function Build {
 
        $params = @{
                SolutionDir = $solutiondir[$visualstudioversion];
-               Arch = $Arch;
-       }
-       & ".\genfiles.ps1" @params
-
-       $params = @{
-               SolutionDir = $solutiondir[$visualstudioversion];
                ConfigurationBase = $configurationbase[$visualstudioversion];
                Arch = $Arch;
                Type = $Type
@@ -50,12 +44,6 @@ Function SdvBuild {
 
        $params = @{
                SolutionDir = $solutiondir[$visualstudioversion];
-               Arch = $arch;
-       }
-       & ".\genfiles.ps1" @params
-
-       $params = @{
-               SolutionDir = $solutiondir[$visualstudioversion];
                ConfigurationBase = $configurationbase[$visualstudioversion];
                Arch = $arch;
                Type = "sdv"
@@ -68,6 +56,22 @@ if ($Type -ne "free" -and $Type -ne "checked") {
        Exit -1
 }
 
+if ([string]::IsNullOrEmpty($Env:VENDOR_NAME)) {
+   Set-Item -Path Env:VENDOR_NAME -Value 'Xen Project'
+}
+
+if ([string]::IsNullOrEmpty($Env:VENDOR_PREFIX)) {
+   Set-Item -Path Env:VENDOR_PREFIX -Value 'XP'
+}
+
+if ([string]::IsNullOrEmpty($Env:PRODUCT_NAME)) {
+   Set-Item -Path Env:PRODUCT_NAME -Value 'Xen'
+}
+
+Set-Item -Path Env:MAJOR_VERSION -Value '9'
+Set-Item -Path Env:MINOR_VERSION -Value '0'
+Set-Item -Path Env:MICRO_VERSION -Value '0'
+
 Build "x86" $Type
 Build "x64" $Type
 
diff --git a/build.py b/build.py
index 3acf977..16bb5e3 100755
--- a/build.py
+++ b/build.py
@@ -24,76 +24,6 @@ def next_build_number():
     return build_number
 
 
-def make_header(now):
-    file = open('include\\version.h', 'w')
-
-    file.write('#define VENDOR_NAME_STR\t\t"' + os.environ['VENDOR_NAME'] + 
'"\n')
-    file.write('#define VENDOR_PREFIX_STR\t"' + os.environ['VENDOR_PREFIX'] + 
'"\n')
-
-    if 'VENDOR_DEVICE_ID' in os.environ.keys():
-        file.write('#define VENDOR_DEVICE_ID_STR\t"' + 
os.environ['VENDOR_DEVICE_ID'] + '"\n')
-
-    file.write('#define PRODUCT_NAME_STR\t"' + os.environ['PRODUCT_NAME'] + 
'"\n')
-    file.write('\n')
-
-    file.write('#define MAJOR_VERSION\t\t' + os.environ['MAJOR_VERSION'] + 
'\n')
-    file.write('#define MAJOR_VERSION_STR\t"' + os.environ['MAJOR_VERSION'] + 
'"\n')
-    file.write('\n')
-
-    file.write('#define MINOR_VERSION\t\t' + os.environ['MINOR_VERSION'] + 
'\n')
-    file.write('#define MINOR_VERSION_STR\t"' + os.environ['MINOR_VERSION'] + 
'"\n')
-    file.write('\n')
-
-    file.write('#define MICRO_VERSION\t\t' + os.environ['MICRO_VERSION'] + 
'\n')
-    file.write('#define MICRO_VERSION_STR\t"' + os.environ['MICRO_VERSION'] + 
'"\n')
-    file.write('\n')
-
-    file.write('#define BUILD_NUMBER\t\t' + os.environ['BUILD_NUMBER'] + '\n')
-    file.write('#define BUILD_NUMBER_STR\t"' + os.environ['BUILD_NUMBER'] + 
'"\n')
-    file.write('\n')
-
-    file.write('#define YEAR\t\t\t' + str(now.year) + '\n')
-    file.write('#define YEAR_STR\t\t"' + str(now.year) + '"\n')
-    file.write('\n')
-
-    file.write('#define MONTH\t\t\t' + str(now.month) + '\n')
-    file.write('#define MONTH_STR\t\t"' + str(now.month) + '"\n')
-    file.write('\n')
-
-    file.write('#define DAY\t\t\t' + str(now.day) + '\n')
-    file.write('#define DAY_STR\t\t\t"' + str(now.day) + '"\n')
-    file.write('\n')
-
-    file.close()
-
-
-def copy_inf(now, vs, arch, name):
-    inf_arch = { 'x86':'x86',
-                 'x64':'amd64' }
-    src = open('src\\%s.inf' % name, 'r')
-    dst = open('%s\\%s.inf' % (vs, name), 'w')
-
-    for line in src:
-        line = re.sub('@INF_DATE@', now.strftime("%m/%d/%Y"), line)
-        line = re.sub('@INF_ARCH@', inf_arch[arch], line)
-        line = re.sub('@MAJOR_VERSION@', os.environ['MAJOR_VERSION'], line)
-        line = re.sub('@MINOR_VERSION@', os.environ['MINOR_VERSION'], line)
-        line = re.sub('@MICRO_VERSION@', os.environ['MICRO_VERSION'], line)
-        line = re.sub('@BUILD_NUMBER@', os.environ['BUILD_NUMBER'], line)
-        line = re.sub('@VENDOR_NAME@', os.environ['VENDOR_NAME'], line)
-        line = re.sub('@PRODUCT_NAME@', os.environ['PRODUCT_NAME'], line)
-
-        if re.search('@VENDOR_DEVICE_ID@', line):
-            if 'VENDOR_DEVICE_ID' not in os.environ.keys():
-                continue
-            line = re.sub('@VENDOR_DEVICE_ID@', 
os.environ['VENDOR_DEVICE_ID'], line)
-
-        dst.write(line)
-
-    dst.close()
-    src.close()
-
-
 def get_expired_symbols(name, age = 30):
     path = os.path.join(os.environ['SYMBOL_SERVER'], '000Admin\\history.txt')
 
@@ -412,21 +342,6 @@ def main():
         print(os.environ['GIT_REVISION'], file=revision)
         revision.close()
 
-    print("VENDOR_NAME\t\t'%s'" % os.environ['VENDOR_NAME'])
-    print("VENDOR_PREFIX\t\t'%s'" % os.environ['VENDOR_PREFIX'])
-
-    if 'VENDOR_DEVICE_ID' in os.environ.keys():
-        print("VENDOR_DEVICE_ID\t'%s'" % os.environ['VENDOR_DEVICE_ID'])
-
-    print("PRODUCT_NAME\t\t'%s'" % os.environ['PRODUCT_NAME'])
-    print("MAJOR_VERSION\t\t%s" % os.environ['MAJOR_VERSION'])
-    print("MINOR_VERSION\t\t%s" % os.environ['MINOR_VERSION'])
-    print("MICRO_VERSION\t\t%s" % os.environ['MICRO_VERSION'])
-    print("BUILD_NUMBER\t\t%s" % os.environ['BUILD_NUMBER'])
-    print()
-
-    make_header(now)
-
     symstore_del(driver, 30)
 
     release = { 'vs2015':'Windows 8',
@@ -434,11 +349,9 @@ def main():
 
     shutil.rmtree(driver, ignore_errors=True)
 
-    copy_inf(now, vs, 'x86', driver)
     build_sln(driver, release[vs], 'x86', debug[sys.argv[1]], vs)
     copy_package(driver, release[vs], 'x86', debug[sys.argv[1]], vs)
 
-    copy_inf(now, vs, 'x64', driver)
     build_sln(driver, release[vs], 'x64', debug[sys.argv[1]], vs)
     copy_package(driver, release[vs], 'x64', debug[sys.argv[1]], vs)
 
diff --git a/genfiles.ps1 b/genfiles.ps1
deleted file mode 100644
index d9a5088..0000000
--- a/genfiles.ps1
+++ /dev/null
@@ -1,125 +0,0 @@
-#
-# Generate version.h and xenbus.inf
-#
-param(
-       [string]$SolutionDir = "vs2017",
-       [string]$ConfigFile = $null,
-       [Parameter(Mandatory = $true)]
-       [string]$Arch
-)
-
-# Copy $InFileName -> $OutFileName replacing $Token$_.Key$Token with $_.Value 
from
-# either $ConfigFile or $Replacements
-Function Copy-FileWithReplacements {
-       param(
-               [Parameter(Mandatory = $true)]
-               [string]$InFileName,
-               [Parameter(Mandatory = $true)]
-               [string]$OutFileName,
-               [string]$ConfigFile,
-               [hashtable]$Replacements,
-               [string]$Token = "@"
-       )
-
-       Write-Host "Copy-FileWithReplacements"
-       Write-Host $InFileName" -> "$OutFileName
-
-       if ($ConfigFile) {
-               $List = Get-Content $ConfigFile | Out-String | iex
-               $List | Out-String | Write-Host
-       } elseif ($Replacements) {
-               $List = $Replacements
-       } else {
-               Write-Host "Invalid Arguments, ConfigFile or Replacements must 
be set"
-               Write-Host
-               Exit -1
-       }
-
-       (Get-Content $InFileName) | 
-       ForEach-Object {
-               $line = $_
-               $List.GetEnumerator() | ForEach-Object {
-                       $key = [string]::Format("{0}{1}{2}", $Token, $_.Name, 
$Token)
-                       if (([string]::IsNullOrEmpty($_.Value)) -and 
($line.Contains($key))) {
-                               Write-Host "Skipping Line Containing " $_.Name
-                               $line = $null
-                       }
-                       $line = $line -replace $key, $_.Value
-               }
-               $line
-       } |
-       Set-Content $OutFileName
-}
-
-#
-# Script Body
-#
-$cwd = Get-Location
-Set-Location $PSScriptRoot
-
-$TheYear = Get-Date -UFormat "%Y"
-$TheMonth = Get-Date -UFormat "%m"
-$TheDay = Get-Date -UFormat "%d"
-$InfArch = @{ "x86" = "x86"; "x64" = "amd64" }
-$InfDate = Get-Date -UFormat "%m/%d/%Y"
-
-# if GitRevision is $null, GIT_REVISION will be excluded from the 
Copy-FileWithReplacements
-$GitRevision = & "git.exe" "rev-list" "--max-count=1" "HEAD"
-if ($GitRevision) {
-       Set-Content -Path ".revision" -Value $GitRevision
-}
-
-# if ".build_number" doesnt exist, BUILD_NUMBER = 0
-# since this can called by the vcxproj, do not autoincrement the build number
-# as this will mean x64 and Win32 builds have different numbers!
-if (Test-Path ".build_number") {
-       $TheBuildNum = Get-Content -Path ".build_number"
-} else {
-       Set-Content -Path ".build_number" -Value "0"
-}
-if (-not $TheBuildNum) {
-       $TheBuildNum = '0'
-}
-
-# [ordered] makes output easier to parse by humans
-$Replacements = [ordered]@{
-       # default parameters, may be overridden in config.ps1
-       'VENDOR_NAME' = 'Xen Project';
-       'PRODUCT_NAME' = 'Xen';
-       'VENDOR_DEVICE_ID' = $null; # must define this replacement, or 
@VENDOR_DEVICE_ID@ will remain in OutFileName
-       'VENDOR_PREFIX' = 'XP';
-
-       'MAJOR_VERSION' = '9';
-       'MINOR_VERSION' = '0';
-       'MICRO_VERSION' = '0';
-
-       # generated values (should not be in config.ps1)
-       'BUILD_NUMBER' = $TheBuildNum;
-       'GIT_REVISION' = $GitRevision;
-
-       'INF_DATE' = $InfDate;
-       'INF_ARCH' = $InfArch[$Arch];
-       'YEAR' = $TheYear;
-       'MONTH' = $TheMonth;
-       'DAY' = $TheDay
-}
-
-if ($ConfigFile -and (Test-Path -Path $ConfigFile)) {
-       $config = Resolve-Path $ConfigFile | Get-Content | Out-String | iex
-       $config.GetEnumerator() | % { $Replacements[$_.Key] = $_.Value }
-}
-
-$Replacements | Out-String | Write-Host
-
-$includepath = Resolve-Path "include"
-$src = Join-Path -Path $includepath -ChildPath "version.tmpl"
-$dst = Join-Path -Path $includepath -ChildPath "version.h"
-Copy-FileWithReplacements $src $dst -Replacements $Replacements
-
-$sourcepath = Resolve-Path "src"
-$solutionpath = Resolve-Path $SolutionDir
-$src = Join-Path -Path $sourcepath -ChildPath "xenbus.inf"
-$dst = Join-Path -Path $solutionpath -ChildPath "xenbus.inf"
-Copy-FileWithReplacements $src $dst -Replacements $Replacements
-
-Set-Location $cwd
diff --git a/scripts/genfiles.ps1 b/scripts/genfiles.ps1
new file mode 100644
index 0000000..d3a7d34
--- /dev/null
+++ b/scripts/genfiles.ps1
@@ -0,0 +1,103 @@
+#
+# Generate version.h and xenbus.inf
+#
+param(
+       [string]$Platform = "Win32",
+       [string]$SolutionDir = "vs2017",
+       [string]$IncludeDir = "include",
+       [string]$SourceDir = "src"
+)
+
+# Copy $InFileName -> $OutFileName replacing $Token$_.Key$Token with $_.Value 
from
+# $Replacements
+Function Copy-FileWithReplacements {
+       param(
+               [Parameter(Mandatory = $true)]
+               [string]$InFileName,
+               [Parameter(Mandatory = $true)]
+               [string]$OutFileName,
+               [hashtable]$Replacements,
+               [string]$Token = "@"
+       )
+
+       Write-Host "Copy-FileWithReplacements"
+       Write-Host $InFileName" -> "$OutFileName
+
+       (Get-Content $InFileName) |
+       ForEach-Object {
+               $line = $_
+               $Replacements.GetEnumerator() | ForEach-Object {
+                       $key = [string]::Format("{0}{1}{2}", $Token, $_.Name, 
$Token)
+                       if (([string]::IsNullOrEmpty($_.Value)) -and 
($line.Contains($key))) {
+                               Write-Host "Skipping Line Containing " $_.Name
+                               $line = $null
+                       }
+                       $line = $line -replace $key, $_.Value
+               }
+               $line
+       } |
+       Set-Content $OutFileName
+}
+
+#
+# Script Body
+#
+$TheYear = Get-Date -UFormat "%Y"
+$TheMonth = Get-Date -UFormat "%m"
+$TheDay = Get-Date -UFormat "%d"
+$InfArch = @{ "Win32" = "x86"; "x64" = "amd64" }
+$InfDate = Get-Date -UFormat "%m/%d/%Y"
+
+# if GitRevision is $null, GIT_REVISION will be excluded from the 
Copy-FileWithReplacements
+$GitRevision = & "git.exe" "rev-list" "--max-count=1" "HEAD"
+if ($GitRevision) {
+       Set-Content -Path ".revision" -Value $GitRevision
+}
+
+# if ".build_number" doesnt exist, BUILD_NUMBER = 0
+# since this can called by the vcxproj, do not autoincrement the build number
+# as this will mean x64 and Win32 builds have different numbers!
+if (Test-Path ".build_number") {
+       $TheBuildNum = Get-Content -Path ".build_number"
+} else {
+       Set-Content -Path ".build_number" -Value "0"
+}
+if (-not $TheBuildNum) {
+       $TheBuildNum = '0'
+}
+
+# [ordered] makes output easier to parse by humans
+$Replacements = [ordered]@{
+       # values determined from the build environment
+       'VENDOR_NAME' = $Env:VENDOR_NAME;
+       'PRODUCT_NAME' = $Env:PRODUCT_NAME;
+       'VENDOR_DEVICE_ID' = $Env:VENDOR_DEVICE_ID;
+       'VENDOR_PREFIX' = $Env:VENDOR_PREFIX;
+
+       'MAJOR_VERSION' = $Env:MAJOR_VERSION;
+       'MINOR_VERSION' = $Env:MINOR_VERSION;
+       'MICRO_VERSION' = $Env:MICRO_VERSION;
+
+       # generated values
+       'BUILD_NUMBER' = $TheBuildNum;
+       'GIT_REVISION' = $GitRevision;
+
+       'INF_DATE' = $InfDate;
+       'INF_ARCH' = $InfArch[$Platform];
+       'YEAR' = $TheYear;
+       'MONTH' = $TheMonth;
+       'DAY' = $TheDay
+}
+
+$Replacements | Out-String | Write-Host
+
+$includepath = Resolve-Path $IncludeDir
+$src = Join-Path -Path $includepath -ChildPath "version.tmpl"
+$dst = Join-Path -Path $includepath -ChildPath "version.h"
+Copy-FileWithReplacements $src $dst -Replacements $Replacements
+
+$sourcepath = Resolve-Path $SourceDir
+$solutionpath = Resolve-Path $SolutionDir
+$src = Join-Path -Path $sourcepath -ChildPath "xenbus.inf"
+$dst = Join-Path -Path $solutionpath -ChildPath "xenbus.inf"
+Copy-FileWithReplacements $src $dst -Replacements $Replacements
diff --git a/vs2015/version/version.vcxproj b/vs2015/version/version.vcxproj
new file mode 100644
index 0000000..e3c95c4
--- /dev/null
+++ b/vs2015/version/version.vcxproj
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <Import Project="..\targets.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="GetNativeManifest"></Target>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile 
-NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) 
$(SourceDir)" />
+  </Target>
+  <Target Name="GetCopyToOutputDirectoryItems"></Target>
+</Project>
diff --git a/vs2015/xenbus.sln b/vs2015/xenbus.sln
index 6d971b2..ecb3540 100644
--- a/vs2015/xenbus.sln
+++ b/vs2015/xenbus.sln
@@ -2,24 +2,38 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 VisualStudioVersion = 14.0.25420.1
 MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", 
"version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_coinst", 
"xenbus_coinst\xenbus_coinst.vcxproj", "{4BF41378-C01B-4002-8581-563C5F703362}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_monitor", 
"xenbus_monitor\xenbus_monitor.vcxproj", 
"{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xen", "xen\xen.vcxproj", 
"{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenfilt", 
"xenfilt\xenfilt.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus", 
"xenbus\xenbus.vcxproj", "{14C16C29-77C9-475B-A618-1B01E67CF985}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{92E5A46B-913C-45C6-B6F8-7E062D85279F}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {14C16C29-77C9-475B-A618-1B01E67CF985} = 
{14C16C29-77C9-475B-A618-1B01E67CF985}
                {4BF41378-C01B-4002-8581-563C5F703362} = 
{4BF41378-C01B-4002-8581-563C5F703362}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
@@ -39,6 +53,22 @@ Global
                Windows 10 Release|x64 = Windows 10 Release|x64
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
@@ -57,28 +87,20 @@ Global
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
@@ -129,28 +151,20 @@ Global
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
diff --git a/vs2017/version/version.vcxproj b/vs2017/version/version.vcxproj
new file mode 100644
index 0000000..9d149d0
--- /dev/null
+++ b/vs2017/version/version.vcxproj
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile 
-NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) 
$(SourceDir)" />
+  </Target>
+</Project>
diff --git a/vs2017/xenbus.sln b/vs2017/xenbus.sln
index 6d971b2..fc85d47 100644
--- a/vs2017/xenbus.sln
+++ b/vs2017/xenbus.sln
@@ -1,25 +1,39 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.27703.2042
 MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", 
"version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_coinst", 
"xenbus_coinst\xenbus_coinst.vcxproj", "{4BF41378-C01B-4002-8581-563C5F703362}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_monitor", 
"xenbus_monitor\xenbus_monitor.vcxproj", 
"{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xen", "xen\xen.vcxproj", 
"{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenfilt", 
"xenfilt\xenfilt.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus", 
"xenbus\xenbus.vcxproj", "{14C16C29-77C9-475B-A618-1B01E67CF985}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{92E5A46B-913C-45C6-B6F8-7E062D85279F}"
        ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
                {14C16C29-77C9-475B-A618-1B01E67CF985} = 
{14C16C29-77C9-475B-A618-1B01E67CF985}
                {4BF41378-C01B-4002-8581-563C5F703362} = 
{4BF41378-C01B-4002-8581-563C5F703362}
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
@@ -29,24 +43,32 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = 
"package", "package\package.
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Windows 8 Debug|Win32 = Windows 8 Debug|Win32
-               Windows 8 Debug|x64 = Windows 8 Debug|x64
-               Windows 8 Release|Win32 = Windows 8 Release|Win32
-               Windows 8 Release|x64 = Windows 8 Release|x64
                Windows 10 Debug|Win32 = Windows 10 Debug|Win32
                Windows 10 Debug|x64 = Windows 10 Debug|x64
                Windows 10 Release|Win32 = Windows 10 Release|Win32
                Windows 10 Release|x64 = Windows 10 Release|x64
+               Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+               Windows 8 Debug|x64 = Windows 8 Debug|x64
+               Windows 8 Release|Win32 = Windows 8 Release|Win32
+               Windows 8 Release|x64 = Windows 8 Release|x64
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
@@ -55,38 +77,30 @@ Global
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
@@ -95,14 +109,14 @@ Global
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
@@ -111,14 +125,14 @@ Global
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
@@ -127,32 +141,35 @@ Global
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
                {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
-               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {B401BB41-D030-43B6-B5FD-9ADFE9A6648E}
+       EndGlobalSection
 EndGlobal
-- 
2.5.3


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.