@@ -55,6 +55,23 @@ function Get-WebView2PackageVersion {
55
55
return $webView2Version
56
56
}
57
57
58
+ function RemergeWinMd ([string ] $winmdSourceFolder , [string ] $winmdTargetFolder , [string ] $winmdReferencesDir )
59
+ {
60
+ Write-Host " re-merge Microsoft.UI.Xaml.winmd"
61
+
62
+ New-Item - Path " $winmdTargetFolder " - ItemType Directory | Out-Null
63
+
64
+ # We need to re-merge Microsoft.UI.Xaml.winmd against the OS internal metadata instead of against the metadata from the public sdk:
65
+ $mdMergeArgs = " -v -metadata_dir "" $winmdReferencesDir "" -o "" $winmdTargetFolder "" -i "" $winmdSourceFolder "" -partial -n:3 -createPublicMetadata -transformExperimental:transform"
66
+ Write-Host " mdmerge $mdMergeArgs "
67
+ Invoke-Expression " mdmerge $mdMergeArgs " | Out-Null
68
+ if ($LASTEXITCODE )
69
+ {
70
+ Write-Error " mdmerge exited with error ($LASTEXITCODE )"
71
+ exit
72
+ }
73
+ }
74
+
58
75
if (-not (Test-Path " $releaseFolder " ))
59
76
{
60
77
Write-Error " Not found folder $releaseFolder "
@@ -74,7 +91,7 @@ if(!(Get-Command mdmerge -ErrorAction Ignore))
74
91
}
75
92
$winuiVpackFolder = " $publishDir \WinUIVpack"
76
93
$cbsFolder = " $publishDir \CBS"
77
- $winmdFolder = " $cbsFolder \winmd"
94
+ $cbswinmdFolder = " $cbsFolder \winmd"
78
95
$packagesDir = Join-Path $repoRoot " packages"
79
96
$winmdReferencesDir = Join-Path $repoRoot " winmdreferences"
80
97
@@ -98,7 +115,6 @@ if (Test-Path $winmdReferencesDir)
98
115
99
116
New-Item - Path " $winuiVpackFolder " - ItemType Directory | Out-Null
100
117
New-Item - Path " $cbsFolder " - ItemType Directory | Out-Null
101
- New-Item - Path " $winmdFolder " - ItemType Directory | Out-Null
102
118
New-Item - Path " $winmdReferencesDir " - ItemType Directory | Out-Null
103
119
104
120
Write-Host " Copy OS publics to $winmdReferencesDir "
@@ -126,7 +142,9 @@ foreach ($flavour in $buildFlavours)
126
142
foreach ($flavour in $buildFlavours )
127
143
{
128
144
$sourceFolder = " $releaseFolder \$flavour \FrameworkPackage"
145
+ $winmdSourceFolder = " $releaseFolder \$flavour \Microsoft.UI.Xaml\sdk"
129
146
$targetFolder = " $winuiVpackFolder \$flavour "
147
+ $winmdTargetFolder = " $winuiVpackFolder \winmd"
130
148
131
149
New-Item - Path " $targetFolder " - ItemType Directory | Out-Null
132
150
@@ -145,6 +163,11 @@ foreach ($flavour in $buildFlavours)
145
163
146
164
Write-Verbose " Copy item from '$sourcePathFull ' to '$destPathFull ' "
147
165
Copy-Item $sourcePathFull $destPathFull
166
+
167
+ if ($flavour -ieq " X64" )
168
+ {
169
+ RemergeWinMd $winmdSourceFolder $winmdTargetFolder $winmdReferencesDir
170
+ }
148
171
}
149
172
150
173
# Create CBS Vpacks:
@@ -164,17 +187,7 @@ foreach ($flavour in $buildFlavours)
164
187
165
188
if ($flavour -ieq " X64" )
166
189
{
167
- Write-Host " re-merge Microsoft.UI.Xaml.winmd"
168
-
169
- # We need to re-merge Microsoft.UI.Xaml.winmd against the OS internal metadata instead of against the metadata from the public sdk:
170
- $mdMergeArgs = " -v -metadata_dir "" $winmdReferencesDir "" -o "" $winmdFolder "" -i "" $targetFolder "" -partial -n:3 -createPublicMetadata -transformExperimental:transform"
171
- Write-Host " mdmerge $mdMergeArgs "
172
- Invoke-Expression " mdmerge $mdMergeArgs " | Out-Null
173
- if ($LASTEXITCODE )
174
- {
175
- Write-Error " mdmerge exited with error ($LASTEXITCODE )"
176
- exit
177
- }
190
+ RemergeWinMd $targetFolder $cbswinmdFolder $winmdReferencesDir
178
191
}
179
192
}
180
193
0 commit comments