-
Notifications
You must be signed in to change notification settings - Fork 367
Create modified msi package drop #5442
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
src/Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk/src/CreateMsiPackageDrop.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk/src/CreateMsiPackageDrop.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk/src/CreateMsiPackageDrop.cs
Outdated
Show resolved
Hide resolved
WorkingDirectory="$(WixToolsDir)" | ||
StandardOutputImportance="normal" | ||
IgnoreStandardErrorWarningFormat="true" | ||
RetryDelayBase="2" /> | ||
|
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 see 2 interesting options to add, to be able to support aspnetcore MSIs - in light command:
-loc <loc.wxl>
-sice:
i.e.
-loc ..\setupstrings.wxl
-sice:ICE61
LOC path can be absolute or relative to wixproj file. Task should copy the file to preserved location, and update this path in the modified light command accordingly - keeping it relative to new wixproj file.
More on Wix Linker (Light command): https://wixtoolset.org/documentation/manual/v3/overview/light.html
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 comment is more appropriate in the Task source-file, as we don't need these additional properties in Shared Framework implementation yet. aspnetcore will use the task directly, until it starts using SharedFramework targets.
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 the other command-line options are interesting that aspnetcore is using?
CommandLineArguments = F:\workspace\_work\1\s\.packages\wix\3.11.1\build\..\tools\Light.exe -out F:\workspace\_work\1\s\artifacts\bin\SharedFrameworkBundle\x64\Release\AspNetCoreSharedFrameworkBundle-x64.exe -pdbout F:\workspace\_work\1\s\artifacts\bin\SharedFrameworkBundle\x64\Release\AspNetCoreSharedFrameworkBundle-x64.wixpdb -ext F:\workspace\_work\1\s\.packages\wix\3.11.1\build\..\tools\\WixDependencyExtension.dll -ext F:\workspace\_work\1\s\.packages\wix\3.11.1\build\..\tools\\WixBalExtension.dll -loc thm.wxl -sice:ICE61 -contentsfile F:\workspace\_work\1\s\artifacts\obj\SharedFrameworkBundle\x64\Release\SharedFrameworkBundle.wixproj.BindContentsFileList.txt -outputsfile F:\workspace\_work\1\s\artifacts\obj\SharedFrameworkBundle\x64\Release\SharedFrameworkBundle.wixproj.BindOutputsFileList.txt -builtoutputsfile F:\workspace\_work\1\s\artifacts\obj\SharedFrameworkBundle\x64\Release\SharedFrameworkBundle.wixproj.BindBuiltOutputsFileList.txt -wixprojectfile F:\workspace\_work\1\s\src\Installers\Windows\SharedFrameworkBundle\SharedFrameworkBundle.wixproj -fv F:\workspace\_work\1\s\artifacts\obj\SharedFrameworkBundle\x64\Release\Bundle.wixobj F:\workspace\_work\1\s\artifacts\bin\SharedFrameworkLib\x86\Release\AspNetCoreSharedFrameworkLibx86.wixlib F:\workspace\_work\1\s\artifacts\bin\SharedFrameworkLib\x64\Release\AspNetCoreSharedFrameworkLibx64.wixlib
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.
Also, is it possible to specify more than one -loc
on the command-line? I don't see it mentioned in a cursory glance of the documentation, but it also doesn't mention that you can specify multiple -ext
args.
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.
According to Wix source-code there can be multiple "-sice:" and "-loc " switches.
I'll take a look at aspnetcore command to see if there is anything else missing.
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.
Here's what's in aspnet command that's also needed:
-fv
- optional switch, no value, single instance
-pdbout
- optional switch, single instance - value should be updated to point to the same location as the new MSI (-out
switch)
-wixprojectfile
- optional switch, single instance - value represents the file that should be copied to the same artifacts folder next to wixobj files
The following 3 aren't documented, they are outputs, so the paths should point to some output folder, i.e. where MSI gets created. I'm unsure who consumes these, but better to preserve the switches. Optional switches, single instances.
-contentsfile
-outputsfile
-builtoutputsfile
WorkingDirectory="$(WixToolsDir)" | ||
StandardOutputImportance="normal" | ||
IgnoreStandardErrorWarningFormat="true" | ||
RetryDelayBase="2" /> | ||
|
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.
According to Wix source-code there can be multiple "-sice:" and "-loc " switches.
I'll take a look at aspnetcore command to see if there is anything else missing.
src/Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk/src/CreateMsiPackageDrop.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk/src/CreateMsiPackageDrop.cs
Outdated
Show resolved
Hide resolved
IEnumerable<XElement> fields = row.XPathSelectElements("wix:field", nsmgr); | ||
if (fields == null || fields.Count() == 0) | ||
{ | ||
// no fields in payload's row?! |
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.
Does this imply this is an error and we should fail?
Nikola messaged and said the block was not intentional
Validated in runtime repo with https://dev.azure.com/dnceng/internal/_build/results?buildId=641932&view=results (generated artifacts are in the build artifacts as "LightCommandPackage-*" I intend to merge after CI passes |
Creates an msi package drop.
also, move generate build manifest into the arcade sdk instead of its own package.
I only have local validation builds at the moment, but I'll try to get an official build of runtime with these changes this afternoon.
FYI @jonfortescue @jcagme