Skip to content
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

Create modified msi package drop #5442

Merged
merged 3 commits into from
May 12, 2020
Merged

Create modified msi package drop #5442

merged 3 commits into from
May 12, 2020

Conversation

chcosta
Copy link
Member

@chcosta chcosta commented May 8, 2020

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

WorkingDirectory="$(WixToolsDir)"
StandardOutputImportance="normal"
IgnoreStandardErrorWarningFormat="true"
RetryDelayBase="2" />

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

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.

Copy link
Member Author

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

Copy link
Member Author

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.

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.

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" />

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.

IEnumerable<XElement> fields = row.XPathSelectElements("wix:field", nsmgr);
if (fields == null || fields.Count() == 0)
{
// no fields in payload's row?!
Copy link
Member

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?

@chcosta chcosta dismissed NikolaMilosavljevic’s stale review May 12, 2020 22:43

Nikola messaged and said the block was not intentional

@chcosta
Copy link
Member Author

chcosta commented May 12, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants