-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Build break: Shorten Windows targeting pack CAB name #29605
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- use `<MediaTemplate>` and auto-generated name when embedding - otherwise, stick with `<Media>` but remove `_win` from the CAB name
|
Hard to tell whether this is doing the right thing. @joeloff what's the easy way to see the name of the cabinet inside aspnetcore-targeting-pack-6.0.0-preview.1.21075.10-win-x64.msi❔ That was produced in an official build of this branch ➡️ https://dev.azure.com/dnceng/internal/_build/results?buildId=965053 |
|
|
||
| <PropertyGroup Condition=" '$(OutputType)' == 'package' AND '$(Cabinet)' == '' "> | ||
| <Cabinet>$(OutputName.Replace('-', '_')).cab</Cabinet> | ||
| <Cabinet Condition=" '$(EmbedCab)' != 'yes' ">$(OutputName.Replace('_win', '')).cab</Cabinet> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just defence-in-depth. Nothing should depend in the CAB name whether it's embedded or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Side note: This will affect the runtime pack as well. I don't see a problem there but want to call it out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be fine until the cab is made external again, mostly because of the shared wixlib we produce to share the MSI between multiple installers
|
|
||
| <?if $(var.EmbedCab)=yes?> | ||
| <!-- Ignore var.Cabinet This element should choose an appropriate name for the embedded CAB. --> | ||
| <MediaTemplate CompressionLevel="high" EmbedCab="yes" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is an id attribute needed in this element❔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the MediaTemplate is just a convenience element in the toolset that defers some of the mundane tasks to the compiler/linker when generating the table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think ASP.NET would move back to external cabinets? If not, you can likely just use the MediaTemplate. The downside is that with external cabinets and the template and multiple MSIs is that they can't exist in the same folder (becuase the cabs are just numerically named and will clash).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubt it but prefer to leave the option available without needing additional work to avoid those clashes.
|
@dougbu simplest is to open the MSI in Orca (it's part of the Win SDK), then look at the Media table's Cabinet column |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, and the MSI contents looks good too. Getting rid of being able to support external cabs is just a suggestion. It won't impact anything.

<MediaTemplate>and auto-generated name when embedding<Media>but remove_winfrom the CAB name