-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
Copy pathBuild-AppSolution.ps1
94 lines (90 loc) · 3.12 KB
/
Build-AppSolution.ps1
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
89
90
91
92
93
94
# Copyright (c) Files Community
# Licensed under the MIT License.
param(
[string]$ReleaseBranch = "Debug", # Debug, Release, SideloadPreview, SideloadStable, StorePreview, or StoreStable
[string]$SolutionPath = "Files.slnx",
[string]$StartupProjectPath = "",
[string]$Platform = "x64",
[string]$Configuration = "Debug",
[string]$AppxBundlePlatforms = "x64|arm64",
[string]$AppxPackageDir = "",
[string]$AppInstallerUrl = "", # Sideload only
[string]$AppxPackageCertKeyFile = "" # Debug only
)
# Restore the solution
msbuild $SolutionPath /t:Restore /p:Platform=$Platform /p:Configuration=$Configuration /p:PublishReadyToRun=true
if ($ReleaseBranch -eq "Debug")
{
msbuild $StartupProjectPath `
/t:Build `
/clp:ErrorsOnly `
/p:Platform=$Platform `
/p:Configuration=$Configuration `
/p:AppxBundle=Never `
/v:quiet
}
elseif ($ReleaseBranch -eq "Release")
{
if ($Platform -eq "x64")
{
msbuild $StartupProjectPath `
/t:Build `
/clp:ErrorsOnly `
/p:Platform=$Platform `
/p:Configuration=$Configuration `
/p:AppxBundlePlatforms=$Platform `
/p:AppxBundle=Always `
/p:UapAppxPackageBuildMode=SideloadOnly `
/p:AppxPackageDir=$AppxPackageDir `
/p:AppxPackageSigningEnabled=true `
/p:PackageCertificateKeyFile=$AppxPackageCertKeyFile `
/p:PackageCertificatePassword="" `
/p:PackageCertificateThumbprint="" `
/v:quiet
}
else
{
msbuild $StartupProjectPath `
/t:Build `
/clp:ErrorsOnly `
/p:Platform=$Platform `
/p:Configuration=$Configuration `
/p:AppxBundle=Never `
/v:quiet
}
}
elseif ($ReleaseBranch -contains "Sideload")
{
msbuild $StartupProjectPath `
/t:Build `
/t:_GenerateAppxPackage `
/clp:ErrorsOnly `
/p:Platform=$Platform `
/p:Configuration=$Configuration `
/p:AppxBundlePlatforms=$AppxBundlePlatforms `
/p:AppxPackageDir=$AppxPackageDir `
/p:AppxBundle=Always `
/p:UapAppxPackageBuildMode=Sideload `
/p:GenerateAppInstallerFile=True `
/p:AppInstallerUri=$AppInstallerUrl `
/v:quiet
$newSchema = 'http://schemas.microsoft.com/appx/appinstaller/2018'
$localFilePath = '$AppxPackageDir/Files.Package.appinstaller'
$fileContent = Get-Content $localFilePath
$fileContent = $fileContent.Replace('http://schemas.microsoft.com/appx/appinstaller/2017/2', $newSchema)
$fileContent | Set-Content $localFilePath
}
elseif ($ReleaseBranch -contains "Store")
{
msbuild $StartupProjectPath `
/t:Build `
/t:_GenerateAppxPackage `
/clp:ErrorsOnly `
/p:Platform=$Platform `
/p:Configuration=$Configuration `
/p:AppxBundlePlatforms=$AppxBundlePlatforms `
/p:AppxPackageDir=$AppxPackageDir `
/p:AppxBundle=Always `
/p:UapAppxPackageBuildMode=StoreUpload `
/v:quiet
}