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
[WIP] Ported core projects to project.json #151
Conversation
"licenseUrl": "http://go.microsoft.com/fwlink/?LinkID=261272", | ||
"requireLicenseAcceptance": true, | ||
|
||
"exclude": [ "*/**/ImmutableList.cs" ], |
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.
For some reason this file caused trouble because of a duplicate declaration in the Core project. This one was picked over the other, but it lacked the ImmutableList<T>.Empty
property, so it wouldn't compile. The implementations looks pretty similar - is there a reason why this exists?
@khellang is there anything in particular I can help with here? (feedback, testing etc) |
I don't know. There are still quite a few projects that needs porting, but it would be nice with some feedback on the target platforms. What do we want to support going forward? |
For simplicity's sake, I'd target whatever can be built OOTB in VS2015. But I'm feeling a bit radical this evening and really want to simplify contributing to the codebase. |
Is there any reason to support Net4? Microsoft has killed it support-wise too. Only .NET 4.5.2 and higher will be getting security updates. I don't think there's any point in supporting WP7 or SL5. WP8 is still a stretch, but maybe leave that one for another version/year and kill it then. |
I know of weird edge-cases like older versions of AutoCAD that fall over when they see modern things. Most of this was fixed in their service packs but some things break obscurely. Honestly, if a client wanted me to support an older version I'd either drag them kicking and screaming into the present day or make them pay for the custom tweakage. Or walk away. tldr; Don't listen to the laggards. Modern is good. |
@onovotny @CADbloke excellent points
We're talking about the |
Yes |
Otoh, rxui 6.5 still works for wp8. Maybe housecleaning is in order. π₯ Wp8 now? |
@khellang I sat down and tried to get the test project There's a few other projects that are needed by the tests:
So I'm just wrapping my head around those and any portability issues right now... |
I'd like to have a shot at converting the tests to xunit. I hope to start over the weekend and will update after mondayish if it looks like something I can pull through to the finish. Sounds okay? |
@M-Zuber π I'm curious what you find out about the migration! |
@M-Zuber Before you start doing anything manually, you should know that the Roslyn team wrote a tool that can translate MSTest to xUnit automatically π See https://github.com/dotnet/codeformatter/tree/master/src/XUnitConverter |
π that's what I was planning on using Let's hope that all we need to do is run that |
β¦red in the original csproj
Just a heads up - if we're going to opt-in for the new way of creating packages, the parent folders must be renamed to match the existing package, e.g |
Aren't Xamarin specific impls still needed for some of the light-up? If so, then those can't yet be built with xproj, afaik. |
@onovotny I have no idea what the support looks like over on that side of the fence... |
@onovotny it's been a while since I've been looked at WinRT (is it now what we call UWP?), and I'm kinda stumped as to how to resolve types under the
Some other errors talk about
Even referencing EDIT: maybe this just isn't achievable from a |
I believe those types come from Windows.winmd? That's not currently on NuGet; that's part of the SDK. It also may not be possible to build with xproj. |
@onovotny basically
Oh well, back to the drawing board on that project... |
some more projects to build using project.json
That's not quite the reference you'd want, it'd be
However, all is not lost, there might still be a way, but it might require "borrowing" some of the private targeting packages that the corefx team is using Needs some spelunking, but I see |
And here it is:
Then look for It has a I know it'd be better to use the main nuget feeds, but perhaps later once stuff is baked? |
Don't use xUnit 1.9.2. It's really old and won't work on devices. Just make sure your unit test project is .NET 4.5. |
Or better yet, put the unit tests into a shared code project so they can be compiled on different platforms for per-platform testing. |
+1 for dropping .NET 4.0 support. It seems at odds with itself to expect users who don't upgrade (or are on WinXP) to jump to the latest build of Rx :-) |
I'll just close this. There's work, based on this, that will bring Rx to the new world of .NET core in the pipeline. Watch #148 |
How to target UWP APIs in .NET Core library project with |
you can use an |
And just use the |
Like this? {
"version": "1.0.0-*",
"frameworks": {
".NETPortable,Version=v4.6,Profile=Profile32": {
"imports": "dotnet5.1",
"frameworkAssemblies": {
"mscorlib": "",
"System": "",
"System.Core": "",
"System.Collections": "",
"System.Globalization": "",
"System.Linq": "",
"System.Linq.Expressions": "",
"System.Reflection": "",
"System.Reflection.Extensions": "",
"System.Runtime": "",
"System.Runtime.Extensions": "",
"System.Runtime.InteropServices": "",
"System.Windows": ""
},
"dependencies": {
"Microsoft.TargetingPack.Private.WinRT": "1.0.1"
}
},
"uap10.0": {
"buildOptions": {
"define": [ "WINDOWS_UWP" ]
},
"imports": "dotnet5.4",
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.0",
"Microsoft.TargetingPack.Private.WinRT": "1.0.1"
}
}
},
"buildOptions": {
"xmlDoc": true
}
} |
I'm opening this up early to see if anyone has some feedback... π
Currently I have the 4 main projects building for
net40
,net45
anddotnet5.4
(netstandard1.3
), without any code changes πThis should cover a minimum of
net40
,net45
,net46
,uap10
,netcore50
anddnxcore50
. I think this includes the Xamarin products as well β¨I tried to aim for
dotnet5.2
(netstandard1.1
), which would include minimumwin8
andwpa8
as well, but could only get Interfaces to compile. Will give it another go soon. βI currently don't have the tooling for sl5, wp7 and wp8, so I punted on those for now π―
All the preprocessor directives are directly from Common.targets, so hopefully they should be good. Anyway, they're a horrible mess and should π₯ ASAP, once the older targets are deprecated.
There are still a few features that are not supported for project.json yet, like .tt-files etc., so this'll probably have to stay side-by-side for a while π
For reference, see the standard platform document.
Should close #148