-
Notifications
You must be signed in to change notification settings - Fork 334
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
Fix incremental build issue where Microsoft.WindowsAppRuntime.Bootstrap.dll is always written to output #4282
Conversation
</ItemDefinitionGroup> | ||
|
||
<Target Name="CopyMicrosoftWindowsAppRuntimeBootstrapdllToOutDir" Condition="'$(AppxPackage)' != 'true'" AfterTargets="Build"> |
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.
Why is this conditioned on "not an appx package"? I guess because generally appx uses the FWP model of binding and not bootstrap?
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 don't know, I just maintained the condition from where it was previously. Probably a question for whoever added this -- @DrusTheAxe added in #827.
I also see that Howard tried to make a change to Copy in #2734 and put it back on #2758. Hopefully someone more knowledgeable about these can help verify this change doesn't re-break any of those scenarios. I suspect the change in #2734 didn't work because it wasn't invoking the task in a Target.
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.
OK. I'm generally supportive of the change. If you wanted a slam-dunk no-questions-asked change, just add the /d
parameter to xcopy, which only copies if the source is newer than the target.
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.
Why is this conditioned on "not an appx package"?
Because Bootstrapper is only needed when WinAppSDK MSIX packages via WinAppSDK DynamicDependencies, AND WinAppSDK DynDep only supports unpackaged apps.
But isn't this necessary-but-insufficient -- the condition should be "I an not a packaged app AND i am not using WinAppSDKSelfContained"?
Condition="('$(AppxPackage)' != 'true') and ('$(WindowsAppSDKSelfContained)' != 'true')"
?
</ItemDefinitionGroup> | ||
|
||
<Target Name="CopyMicrosoftWindowsAppRuntimeBootstrapdllToOutDir" Condition="'$(AppxPackage)' != 'true'" AfterTargets="Build"> |
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.
OK. I'm generally supportive of the change. If you wanted a slam-dunk no-questions-asked change, just add the /d
parameter to xcopy, which only copies if the source is newer than the target.
</ItemDefinitionGroup> | ||
|
||
<Target Name="CopyMicrosoftWindowsAppRuntimeBootstrapdllToOutDir" Condition="'$(AppxPackage)' != 'true'" AfterTargets="Build"> |
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.
'$(AppxPackage)' != 'true'
Is that the right test or should it be '$(WindowsPackageType)'=='None'
?
@Scottj1s @bpulliam @evelynwu-msft what's the latest practices for "My VS project is not making an MSIX package"?
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 condition came from the ItemGroup above.
/azp run |
No pipelines are associated with this pull request. |
/azp run |
No pipelines are associated with this pull request. |
/azp run TransportPackage-Foundation-PR |
No pipelines are associated with this pull request. |
@kythant or @bpulliam or @evelynwu-msft - what's going on with the build pipelines here? |
The triggers won't work because the PR is coming from a forked copy of the repository. The branch cannot be seen from this pipeline https://microsoft.visualstudio.com/DefaultCollection/ProjectReunion/_build?definitionId=81063 |
So what should @jevansaks do? How do we get this built and validated? |
@kythant @bpulliam @evelynwu-msft @jonwis I strongly recommend you enable the settings on the ADO project and pipeline to enable building from forks to enable contributions. I sent email with the links you should follow. |
I made the change earlier this morning, and I now see that it has been changed again (I don't see the history).
It should work for you now.
From: Jevan Saks ***@***.***>
Sent: Thursday, March 28, 2024 11:41 AM
To: microsoft/WindowsAppSDK ***@***.***>
Cc: Bob Pulliam ***@***.***>; Mention ***@***.***>
Subject: Re: [microsoft/WindowsAppSDK] Fix incremental build issue where Microsoft.WindowsAppRuntime.Bootstrap.dll is always written to output (PR #4282)
@kythant<https://github.com/kythant> @bpulliam<https://github.com/bpulliam> @evelynwu-msft<https://github.com/evelynwu-msft> @jonwis<https://github.com/jonwis> I strongly recommend you enable the settings on the ADO project and pipeline to enable building from forks to enable contributions. I sent email with the links you should follow.
-
Reply to this email directly, view it on GitHub<#4282 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABV2OQJG2OI67QQYINYYBYTY2Q2YBAVCNFSM6AAAAABFCXMEP2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRVGUZDOMBQHE>.
You are receiving this because you were mentioned.Message ID: ***@***.******@***.***>>
|
/azp run |
No pipelines are associated with this pull request. |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
@bpulliam Thanks, we also needed to change the pipeline triggers. But I seemed to have permissions for that. |
Builds from forks are enabled but without secrets they can't do anything. Abandoning for now until the team spends time to make forks work. Re-opened as #4296 |
Pull request was closed
PostBuildEvent is unconditionally run and xcopy always does the copy, making downstream projects think that they need to rebuild too because their references rebuild.
Switch to using a Target that leverages the built-in Copy task that already does the timestamp checks for us.