Skip to content

Commit 504d2c9

Browse files
authored
Embeds icon into NuGet packages (#3900)
Updates NuGet packages to embed an icon, instead of referencing an icon URL. This change improves the NuGet package display and provides a more consistent user experience. It removes the need to download the icon separately and ensures the icon is always available, even if the URL becomes invalid.
1 parent 4de685b commit 504d2c9

File tree

5 files changed

+6
-29
lines changed

5 files changed

+6
-29
lines changed

build/BuildNugets.ps1

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,6 @@ $year = [System.DateTime]::Now.ToString("yyyy")
88
$copyright = "Copyright $year James Willock/Mulholland Software Ltd"
99
$configuration = "Release"
1010

11-
function Update-Icon {
12-
param (
13-
[string]$Path
14-
)
15-
$Path = Resolve-Path $Path
16-
[xml] $xml = Get-Content $Path
17-
[string] $iconUrl = $xml.package.metadata.iconUrl;
18-
if (![string]::IsNullOrWhiteSpace($iconUrl) -and [string]::IsNullOrWhiteSpace($xml.package.metadata.icon)) {
19-
$nugetIconFile = "$($xml.package.metadata.id).Icon.png";
20-
$nugetIconPath = Join-Path (Split-Path $Path -Parent) $nugetIconFile
21-
Write-Host "Downloading icon from $iconUrl to $nugetIconPath"
22-
Invoke-WebRequest $iconUrl -OutFile "$nugetIconPath"
23-
$files = $xml.SelectSingleNode("/package/files")
24-
$iconFile = $xml.CreateElement("file")
25-
$iconFile.SetAttribute("src", "$nugetIconFile")
26-
$iconFile.SetAttribute("target", "images\")
27-
$files.AppendChild($iconFile) | Out-Null
28-
29-
$iconElement = $xml.CreateElement("icon")
30-
$iconElement.InnerText = "images\$nugetIconFile"
31-
$xml.package.metadata.AppendChild($iconElement) | Out-Null
32-
}
33-
$xml.Save($Path)
34-
}
35-
3611
function Update-Versions {
3712
param (
3813
[string]$Path
@@ -58,7 +33,6 @@ function New-Nuget {
5833
)
5934

6035
$NuSpecPath = Resolve-Path $NuSpecPath
61-
Update-Icon "$NuSpecPath"
6236
nuget pack "$NuSpecPath" -version "$Version" -Properties "Configuration=$configuration;Copyright=$copyright"
6337
}
6438

build/MaterialDesign.Icon.png

2.13 KB
Loading

src/MaterialDesignColors.Wpf/MaterialDesignColors.nuspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<owners>James Willock</owners>
99
<license type="expression">MIT</license>
1010
<projectUrl>https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit</projectUrl>
11-
<iconUrl>http://materialdesigninxaml.net/images/MD4XAML32.png</iconUrl>
11+
<icon>images\MaterialDesign.Icon.png</icon>
1212
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1313
<description>ResourceDictionary instances containing standard Google Material Design swatches,
1414
for inclusion in a XAML application.</description>
@@ -23,6 +23,7 @@
2323
</dependencies>
2424
</metadata>
2525
<files>
26+
<file src="..\..\build\MaterialDesign.Icon.png" target="images\" />
2627
<file src="..\..\README.md" target="docs\" />
2728
<file src="bin\$configuration$\net462\MaterialDesignColors.*" target="lib\net462"
2829
exclude="**\*.json" />

src/MaterialDesignThemes.MahApps/MaterialDesignThemes.MahApps.nuspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<owners>James Willock</owners>
99
<license type="expression">MIT</license>
1010
<projectUrl>https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit</projectUrl>
11-
<iconUrl>http://materialdesigninxaml.net/images/MD4XAML32.png</iconUrl>
11+
<icon>images\MaterialDesign.Icon.png</icon>
1212
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1313
<description>ResourceDictionary instances containing Material Design templates and styles for
1414
WPF controls in the MahApps library.</description>
@@ -30,6 +30,7 @@
3030
</dependencies>
3131
</metadata>
3232
<files>
33+
<file src="..\..\build\MaterialDesign.Icon.png" target="images\" />
3334
<file src="..\..\README.md" target="docs\" />
3435
<file src="bin\$configuration$\net462\MaterialDesignThemes.MahApps.*" target="lib\net462"
3536
exclude="**\*.json" />

src/MaterialDesignThemes.Wpf/MaterialDesignThemes.nuspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<owners>James Willock</owners>
99
<license type="expression">MIT</license>
1010
<projectUrl>https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit</projectUrl>
11-
<iconUrl>http://materialdesigninxaml.net/images/MD4XAML32.png</iconUrl>
11+
<icon>images\MaterialDesign.Icon.png</icon>
1212
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1313
<description>ResourceDictionary instances containing Material Design templates and styles for
1414
WPF controls in .NET.</description>
@@ -28,6 +28,7 @@
2828
</dependencies>
2929
</metadata>
3030
<files>
31+
<file src="..\..\build\MaterialDesign.Icon.png" target="images\" />
3132
<file src="..\..\README.md" target="docs\" />
3233
<file src="bin\$configuration$\net462\MaterialDesignThemes.Wpf.*"
3334
target="lib\net462" exclude="**\*.json" />

0 commit comments

Comments
 (0)