merge: integrate local project metadata history
This commit is contained in:
commit
3688dc708f
1 file changed
+85
@@ -0,0 +1,85 @@
|
|||||||
|
# Clean redundant metadata from all project files
|
||||||
|
# Projects will inherit from Directory.Build.props
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
Write-Host "Cleaning Project Metadata..." -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Get all .csproj files
|
||||||
|
$projectFiles = Get-ChildItem -Path "." -Filter "*.csproj" -Recurse |
|
||||||
|
Where-Object { $_.FullName -notmatch "\\obj\\" -and $_.FullName -notmatch "\\bin\\" }
|
||||||
|
|
||||||
|
Write-Host "Found $($projectFiles.Count) project files" -ForegroundColor Yellow
|
||||||
|
|
||||||
|
# Metadata properties to remove (will inherit from Directory.Build.props)
|
||||||
|
$metadataToRemove = @(
|
||||||
|
"Version",
|
||||||
|
"AssemblyVersion",
|
||||||
|
"FileVersion",
|
||||||
|
"Authors",
|
||||||
|
"Company",
|
||||||
|
"Product",
|
||||||
|
"Copyright",
|
||||||
|
"PackageId",
|
||||||
|
"PackageProjectUrl",
|
||||||
|
"RepositoryUrl",
|
||||||
|
"RepositoryType",
|
||||||
|
"PackageLicenseExpression"
|
||||||
|
)
|
||||||
|
|
||||||
|
$totalModified = 0
|
||||||
|
|
||||||
|
foreach ($projectFile in $projectFiles) {
|
||||||
|
Write-Host "`nProcessing: $($projectFile.Name)" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Read file content
|
||||||
|
$lines = Get-Content -Path $projectFile.FullName -Encoding UTF8
|
||||||
|
$newLines = New-Object System.Collections.ArrayList
|
||||||
|
$modified = $false
|
||||||
|
$removedCount = 0
|
||||||
|
|
||||||
|
# Filter out metadata lines
|
||||||
|
foreach ($line in $lines) {
|
||||||
|
$shouldSkip = $false
|
||||||
|
|
||||||
|
# Check if line contains any metadata to remove
|
||||||
|
foreach ($metadata in $metadataToRemove) {
|
||||||
|
if ($line -match "<$metadata>.*</$metadata>") {
|
||||||
|
$shouldSkip = $true
|
||||||
|
$removedCount++
|
||||||
|
Write-Host " Removed: $metadata" -ForegroundColor Gray
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Skip comment lines
|
||||||
|
if ($line -match "<!--\s*(程序集元数据|NuGet 包元数据)\s*-->") {
|
||||||
|
$shouldSkip = $true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not $shouldSkip) {
|
||||||
|
[void]$newLines.Add($line)
|
||||||
|
} else {
|
||||||
|
$modified = $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Save if modified
|
||||||
|
if ($modified) {
|
||||||
|
$newLines | Set-Content -Path $projectFile.FullName -Encoding UTF8
|
||||||
|
Write-Host " Updated ($removedCount properties removed)" -ForegroundColor Green
|
||||||
|
$totalModified++
|
||||||
|
} else {
|
||||||
|
Write-Host " No changes needed" -ForegroundColor DarkGray
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||||
|
Write-Host "Done! Updated $totalModified project files" -ForegroundColor Green
|
||||||
|
Write-Host "========================================" -ForegroundColor Cyan
|
||||||
|
Write-Host "`nProjects now inherit from Directory.Build.props:" -ForegroundColor Yellow
|
||||||
|
Write-Host " - Version, Authors, Copyright" -ForegroundColor White
|
||||||
|
Write-Host " - Repository URLs, License" -ForegroundColor White
|
||||||
|
Write-Host "`nProject-specific properties retained:" -ForegroundColor Yellow
|
||||||
|
Write-Host " - Description" -ForegroundColor White
|
||||||
|
Write-Host " - PackageTags" -ForegroundColor White
|
||||||
Reference in new issue
Block a user