Ich versuchte ein paar Dinge zu versuchen, visuelle Studio-Performance zu verbessern, aber musste schließlich um die Begrenzung arbeiten. Ich habe ein paar IO-bezogene Elemente wie die Deaktivierung von Antivirenprogrammen versucht. Ich habe auch versucht, die Quellcodeverwaltung im Visual Studio und verschiedene Workarounds zu deaktivieren. Ich entschied mich schließlich dafür, den Material-Ikonen-Ordner vollständig aus der Lösung zu entfernen und ihn während des Veröffentlichungsprozesses wieder hinzuzufügen. Ich musste auch etwas "Baumschütteln" machen, so dass nur Icons, die ich tatsächlich benutzte, veröffentlicht wurden. Ich habe dies getan, indem ich alle cs- und cshtml-Dateien für die Symbolverwendung gescannt habe und dann nur diese Dateien kopiert habe. Hier ist das Skript, falls es jemand anderem hilft:
function Publish-MaterialIcons{
[cmdletbinding()]
param(
[Parameter(Position=0, Mandatory=$true)]
[string]$path
)
process{
$mdPath = "D:\media\material-design-icons"
$publishPath = $(Join-Path $path "wwwroot\lib\material-design-icons")
if (!(Test-Path $publishPath))
{
robocopy $mdPath $publishPath /e /xf *.* | Out-Null
}
"Adding $publishPath"
$includeFonts = ls -Recurse -Include "*.cs", "*.cshtml" |% {cat $_} |? {$_ -match "([\w_]+)\</i\>"} |% {$matches[1]} | select -Unique |% {"*$_*.png","*$_*.svg"}
$mdPathR = $mdPath -replace "\\", "\\"
$publishPathR = $publishPath -replace "\\", "\\"
$(ls $mdPath -Recurse -include $includeFonts) + $(ls $mdPath -Recurse -Exclude "*.png", "*.svg") |% {
$newPath = join-path $($(Split-Path $_.FullName) -replace $mdPathR, $publishPathR) $_.Name
cp $_.FullName $newPath -Force
}
}
}