[ClickOnce] Handle multiple apphost.exe files that could be published with an EXE to EXE P2P reference#9447
Conversation
|
Hello! I noticed that you're targeting one of our servicing branches. Please consider updating the version. |
c38959c to
634d319
Compare
|
@AR-May this is a vs17.8 PR. Can you please review, specifically check that it's compliant with our servicing requirements (need a version bump?) @sujitnayak can you please fill out and attach the M2/QB servicing template to the AzDO bug? We'll then take it through the servicing process. Thank you! |
Done. |
@sujitnayak, friendly ping on this. The bug needs the servicing template. |
@ladipro Thanks, I have filled out the bug template. |
|
Hello! I noticed that you're targeting one of our servicing branches. Please consider updating the version. |
@ladipro does the version have to be bumped again? |
889ab8d to
e8f2345
Compare
… with an EXE to EXE P2P dependency
e8f2345 to
efbb65d
Compare
Indeed. It's odd that GitHub was not detecting the conflict. Thank you! |
Fixes #
AB#1921068
Description
PR 9299 added support for publishing content artifacts from P2P references. After this change, there is an installation failure that has been reported for a scenario where an EXE project has a P2P reference to another EXE project. For such a scenario, there are 2 apphost.exe's that are present in the list of artifacts to be published - one from the main project and the other from the referenced EXE project.
Customer Impact
ClickOnce does not expect 2 apphost.exe's to be published together and both of the apphost.exe's get published as the assembly name of the main project. This leads to a duplicate entry in the ClickOnce application manifest and the installation of the app fails due to this.
Regression: Yes, worked before 17.8.
Risk: Low
Changes Made
ClickOnce's ResolveManifestFiles and GenerateApplicationManifest task are being updated to handle the case where more than 1 apphost.exe files need to be published. Instead of publishing them with the name of the assembly of the main project, we use the TargetPath metadata of the file item to publish the file.
Testing
CTI has done a full test pass for regression and the failing scenario.
The failing scenario has been added to the ClickOnce test suite.