-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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 live publishing workflow #79775
Conversation
This PR attempts to create a dedicated live publishing workflow that many different projects can use to publish with live bits, specifically in self-contained scenarios. The two consumers right now are crossgen2 and ILC. The ILC binaries currently don't go anywhere (they don't ship in any packages), but they could if we decide to go that route. The new suggested workflow would be to create a new dedicated project for publishing, which avoids potential headaches with shared assets from the original project. Then, setting the 'LivePublish' MSBuild variable should enable the Publish task to use live bits. Setting the 'PublishOnBuild' property to 'true' will let a project publish itself whenever build is executed.
Example: | ||
<SingleFileHostIncludeFilename Include="somefile.dll" /> | ||
--> | ||
<ItemGroup> |
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 moved this out of packaging so that it would also get used for the pretest
live runtimepack that we generate. Without this, live publishing for single-file ends up with a lot of extra binaries in the output.
;RuntimeIdentifier=$(PackageRID) | ||
;CoreCLRArtifactsPath=$(CoreCLRArtifactsPath) | ||
;R2ROverridePath=$(MSBuildThisFileDirectory)ReadyToRun.targets"> | ||
Properties="PublishOnBuild=false"> |
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 necessary because otherwise there seems to be some sort of cycle of target dependencies. I didn't spend time debugging it since it didn't seem important.
Is it about different binaries than the one shipped in ilcompiler's runtime package (which msbuild invokes with
|
Ah yeah, that should read "the AOT'd ILC binaries don't go anywhere in this PR" -- I changed packaging to pull the FX-dependent versions. That may be the wrong move, it was just simple to do for the moment. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
This PR attempts to create a dedicated live publishing workflow that many different projects can use to publish with live bits, specifically in self-contained scenarios. The two consumers right now are crossgen2 and ILC. The ILC binaries currently don't go anywhere (they don't ship in any packages), but they could if we decide to go that route.
The new suggested workflow would be to create a new dedicated project for publishing, which avoids potential headaches with shared assets from the original project. Then, setting the 'LivePublish' MSBuild variable should enable the Publish task to use live bits. Setting the 'PublishOnBuild' property to 'true' will let a project publish itself whenever build is executed.