-
Notifications
You must be signed in to change notification settings - Fork 515
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 XM Full netstandard to copy in correct assemblies #2685
Conversation
chamons
commented
Sep 13, 2017
- Applications will build but crash on launch otherwise
- Applications will build but crash on launch otherwise
I caught this while writing an auto test. |
@@ -536,6 +536,9 @@ Copyright (C) 2014 Xamarin. All rights reserved. | |||
<Target Name="_CompileToNative" DependsOnTargets="_DetectAppManifest;_DetectSdkLocations;_GenerateBundleName;ResolveReferences;_CompileEntitlements;_CompileAppManifest" | |||
Inputs="$(TargetDir)$(TargetFileName)" | |||
Outputs="$(_AppBundlePath)Contents\MacOS\$(_AppBundleName)"> | |||
<ItemGroup> | |||
<ReferencesOnly Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.Extension)' == '.dll'" /> |
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.
Maybe name like ReferenceCopyLocalAssemblyPaths
?
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.
Wouldn't that just append to the existing item group of that name?
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.
oh, woops, the existing name doesn't have the word Assembly in it. n/m :)
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.
yeah, I just wanted to make it easy to see where that extracted item was sourced from!
and a commit message like:
|
I'll steal that when i squash merge. |
build |
Build failure |
Build failure |
Looks like the breakages are non-trivial, will have to dig into them. |
Ok, that fixes all tests locally and them when I hack it to run msbuild (https://gist.github.com/chamons/8fb988deb4daca052663efa116cea084). I think the change is safe to stew in master, but i'm questioning 15.4... |
Build failure |
This is strange, I can build things just fine locally, even with no XM installed. Let's try one more time to verify before I start digging up the world... |
build |
Build failure |
Ok, somehow this broke build machine builds but not my local builds. Digging... |
I can reproduce if I git clean external/guiunit |
Build failure |
Test failure is known - https://bugzilla.xamarin.com/show_bug.cgi?id=59277 |
I feel more confident landing this, as it is nearly identical to what XI does. |
…2731) - https://bugzilla.xamarin.com/show_bug.cgi?id=59474 - The idea is to force Full and Modern to expand facades the same way. That way, we get the same, working behavior. - f79f2e4 was not sufficient, even though it matched XI, because of the difference between XI (and Modern) and what Full was doing. - Some context: PR #2685 And that was problematic because it was expanding the netstandard facades from `Microsoft.NET.Build.Extensions` in the `ImplicitlyExpandNETStandardFacades` target. But we want to build against XM's bundled facades *only*. So we disable the ns facades completely by setting `$(ImplicitlyExpandNETStandardFacades) = false`. But now we are in the situation where a XM/Full project referencing a ns project might fail to build because of a missing `netstandard.dll` reference! And this same case was fixed for XM/Modern projects in #2643 . So, we enable the use of that for XM/Full projects too through `Xamarin.Mac.msbuild.targets`.
- Applications will build but crash on launch otherwise
…amarin#2731) - https://bugzilla.xamarin.com/show_bug.cgi?id=59474 - The idea is to force Full and Modern to expand facades the same way. That way, we get the same, working behavior. - f79f2e4 was not sufficient, even though it matched XI, because of the difference between XI (and Modern) and what Full was doing. - Some context: PR xamarin#2685 And that was problematic because it was expanding the netstandard facades from `Microsoft.NET.Build.Extensions` in the `ImplicitlyExpandNETStandardFacades` target. But we want to build against XM's bundled facades *only*. So we disable the ns facades completely by setting `$(ImplicitlyExpandNETStandardFacades) = false`. But now we are in the situation where a XM/Full project referencing a ns project might fail to build because of a missing `netstandard.dll` reference! And this same case was fixed for XM/Modern projects in xamarin#2643 . So, we enable the use of that for XM/Full projects too through `Xamarin.Mac.msbuild.targets`.