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. |
| Inputs="$(TargetDir)$(TargetFileName)" | ||
| Outputs="$(_AppBundlePath)Contents\MacOS\$(_AppBundleName)"> | ||
| <ItemGroup> | ||
| <ReferencesOnly Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.Extension)' == '.dll'" /> |
There was a problem hiding this comment.
Maybe name like ReferenceCopyLocalAssemblyPaths?
There was a problem hiding this comment.
Wouldn't that just append to the existing item group of that name?
There was a problem hiding this comment.
oh, woops, the existing name doesn't have the word Assembly in it. n/m :)
There was a problem hiding this comment.
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
…otnet#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 dotnet#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 dotnet#2643 . So, we enable the use of that for XM/Full projects too through `Xamarin.Mac.msbuild.targets`.