Fix Compress-PSResource ignoring .gitkeep and empty files #1887
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Compress-PSResource
was ignoring files and folders when creating.nupkg
packages, specifically:.gitkeep
files.gitkeep
files.
)This caused signature verification failures when a file catalog included these files but they were missing from the compressed package.
Root Cause
NuGet's
PackCommandRunner
applies default exclusions when packing, including:.
)The
CreateNuspec()
method was generating.nuspec
files without an explicit<files>
section, causing NuGet to apply these default exclusions.Solution
Modified
CreateNuspec()
inPublishHelper.cs
to add an explicit<files>
section to the generated.nuspec
:This overrides NuGet's default exclusions and ensures all files are included in the package, including
.gitkeep
files and other hidden files.Testing
Added comprehensive test case
"Compress-PSResource includes .gitkeep files and empty files"
that:Public
andPrivate
directories.gitkeep
file inPublic
.gitkeep
file inPrivate
.gitkeep
files are present in the packageImpact
.DS_Store
if present), making the behavior more predictable and transparentFixes #[issue_number]
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
1k9vsblobprodcus379.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)37cvsblobprodcus359.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)4myvsblobprodcus32.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)51yvsblobprodcus36.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)5dkvsblobprodcus355.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)7devsblobprodcus323.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)7k6vsblobprodcus337.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)7tjvsblobprodcus341.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)96bvsblobprodcus338.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)bcnvsblobprodcus378.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)c50vsblobprodcus330.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)c78vsblobprodcus322.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)dlbvsblobprodcus316.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)fdpvsblobprodcus345.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)gbsvsblobprodcus365.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)kh4vsblobprodcus325.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)kmuvsblobprodcus389.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)l49vsblobprodcus358.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)m6xvsblobprodcus342.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)pkvvsblobprodcus321.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)s4uvsblobprodcus326.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)tphvsblobprodcus375.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)uy6vsblobprodcus34.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)yttvsblobprodcus357.vsblob.vsassets.io
/usr/bin/dotnet publish --configuration Debug --framework net472 --output bin/Debug/net472/publish
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.