-
Notifications
You must be signed in to change notification settings - Fork 519
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
[msbuild] Add support to the ResolveNativeReferences task to execute remotely. Fixes #19027. #19047
Conversation
…remotely. Fixes dotnet#19027. It looks like ResolveNativeReferences was always intended to execute remotely from Windows (when used in the _ExpandNativeReferences target, the task is given a session id, and only called when IsMacEnabled=true), but the task itself never implemented the code to execute remotely. Weirdly enough this was never an issue, because the task never did something that had to be done on a Mac. That is, until recently, when the task learned to decompress zip files, by executing /usr/bin/unzip. Obviously this doesn't work on Windows, so fix it by adding support for the task to execute remotely. Fixes dotnet#19027.
…s task to execute remotely. Fixes dotnet#19027. It looks like ResolveNativeReferences was always intended to execute remotely from Windows (when used in the _ExpandNativeReferences target, the task is given a session id, and only called when IsMacEnabled=true), but the task itself never implemented the code to execute remotely. Weirdly enough this was never an issue, because the task never did something that had to be done on a Mac. That is, until recently, when the task learned to decompress zip files, by executing /usr/bin/unzip. Obviously this doesn't work on Windows, so fix it by adding support for the task to execute remotely. Fixes dotnet#19027. Backport of dotnet#19047.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
// 1. They're not used in Inputs/Outputs, so the lack of them won't affect anything | ||
// 2. They may be directories, and as such we'd have to expand them to (potentially numerous and large) files to copy them (uselessly) to Windows. | ||
// 3. They may contain symlinks, which may not work correctly on Windows. | ||
return 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.
I see there are two output properties in this class. Returning false means none of those output properties will be considered for creating the files on Windows.
I’m just trying to understand why we would only want to create output files when there are no frameworks. Is it okay to discard the TouchedFiles output when there are frameworks?
On the other hand, our outputs are always empty files, we never copy a real output file.
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 think I can change this to never create an output file, that would actually make more sense.
💻 [CI Build] Windows Integration Tests passed 💻✅ All Windows Integration Tests passed. Pipeline on Agent |
📚 [PR Build] Artifacts 📚Packages generatedView packagesPipeline on Agent |
✅ API diff for current PR / commitLegacy Xamarin (No breaking changes)
NET (empty diffs)
✅ API diff vs stableLegacy Xamarin (No breaking changes).NET (No breaking changes)✅ Generator diffGenerator diff is empty Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Ventura (13.0) passed 💻✅ All tests on macOS M1 - Mac Ventura (13.0) passed. Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) passed 💻✅ All tests on macOS M1 - Mac Big Sur (11.5) passed. Pipeline on Agent |
🚀 [CI Build] Test results 🚀Test results✅ All tests passed on VSTS: simulator tests. 🎉 All 234 tests passed 🎉 Tests counts✅ bcl: All 69 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
…s task to execute remotely. Fixes #19027. (#19048) It looks like ResolveNativeReferences was always intended to execute remotely from Windows (when used in the _ExpandNativeReferences target, the task is given a session id, and only called when IsMacEnabled=true), but the task itself never implemented the code to execute remotely. Weirdly enough this was never an issue, because the task never did something that had to be done on a Mac. That is, until recently, when the task learned to decompress zip files, by executing /usr/bin/unzip. Obviously this doesn't work on Windows, so fix it by adding support for the task to execute remotely. Fixes #19027. Backport of #19047.
It looks like ResolveNativeReferences was always intended to execute remotely
from Windows (when used in the _ExpandNativeReferences target, the task is
given a session id, and only called when IsMacEnabled=true), but the task
itself never implemented the code to execute remotely.
Weirdly enough this was never an issue, because the task never did something
that had to be done on a Mac.
That is, until recently, when the task learned to decompress zip files, by
executing /usr/bin/unzip.
Obviously this doesn't work on Windows, so fix it by adding support for the
task to execute remotely.
Fixes #19027.