Core, Standard ... what a mess
-
:thumbsup: thanks, Lloyd, you make more sense than Scott did ! Given I am trying to use a compiled Core project (dll) in a WinForms project, do you think it possible that some modification could be made to the Core project so that it somehow included the necessary run-time ? cheers, Bill
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
Your WinForms project needs to be .NET Core to reference a .NET Core library. Referencing a .NET Core library from a .NET Framework project is not a supported scenario. It can go the other way though - a .NET Core project supports adding references to .NET Framework libraries, but keep in mind there may be a few APIs that aren't available in .NET Core. It's fairly rare that you'll run into this though. Just remember - .NET Core new and backwards compat, .NET Framework old. You can't add a reference to a new .NET Core project from an old .NET Framework project.
Blog: [Code Index] By Mike Marynowski | Business: Singulink
-
:thumbsup: thanks, Lloyd, you make more sense than Scott did ! Given I am trying to use a compiled Core project (dll) in a WinForms project, do you think it possible that some modification could be made to the Core project so that it somehow included the necessary run-time ? cheers, Bill
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
Your WinForms project needs to be .NET Core to reference a .NET Core library. Referencing a .NET Core library from a .NET Framework project is not a supported scenario. It can go the other way though - a .NET Core project supports adding references to .NET Framework libraries, but keep in mind there may be a few APIs that aren't available in .NET Core. It's fairly rare that you'll run into this though. Just remember - .NET Core new and backwards compat, .NET Framework old. You can't add a reference to a new .NET Core library from an old .NET Framework project. That would be like trying to add a reference to a .NET 4.7 library from a .NET 2.0 project...wouldn't work.
Blog: [Code Index] By Mike Marynowski | Business: Singulink
-
Recently a demon made me create a Core project, and then attempt to use it in a WinForms app. And, yes, I altered the project files of both to enable C# 8. The Core project does nothing but define a stupid little Class with one method that writes to the Console.. So, okay, I add a reference to the Core project dll to the WinForm app. I attempt to use it ... well, I m not surprised it didn't work, but was surprised to get a file-not-found error:
Quote:
System.IO.FileNotFoundException HResult=0x80070002 Message=Could not load file or assembly 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Source=TestUsingCore StackTrace: at TestUsingCore.Form1.Form1_Load(Object sender, EventArgs e) in ...
So, I set out to do some research, came across this article by Scott Hanselmann: [^]. I have great respect for Scott, and have learned a lot from his writing over the years; however, this article, titled "How to reference a .NET Core library in WinForms - Or, .NET Standard Explained," ignores the question in the title and ends up recommending ".NET Standard" as if that explains anything. Was Scott avoiding the simple answer that you cannot use a Core project/class in a WinForm app for some reason ? Well, okay, Scott wrote that in June, 2017: that's decades ago in .NET's evolutionary time-scale. To turn my headache into a full-on migraine, I then re-read this article: "How to port desktop applications to .NET Core 3.0" [^]. Whaddya think ?
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
-
:thumbsup: thanks, Lloyd, you make more sense than Scott did ! Given I am trying to use a compiled Core project (dll) in a WinForms project, do you think it possible that some modification could be made to the Core project so that it somehow included the necessary run-time ? cheers, Bill
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
As for WinForm control library... Damn... you could do that with PCL, compile for multiple targets! But you can't. Anyway as the other poster suggested, it seems like you can make a .NET Framework control library and use it in your .NET Core app! :)
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
-
> Instead, you should use .NET Standard, the common denominator between the two. Since when do Linux and Mac natively support .NET Standard, and since when do all Servers inherently have it installed? It's almost as if people have specific use-case scenarios for requiring .NET Core...
-= Reelix =-
.NET Standard isn't a runtime, so it's not installed on any machine. .NET Core applications can be deployed as stand-alone applications that come bundled with the runtime though. And I guess the .NET Core runtime can be installed on Mac or Linux directly as well, as you can on Windows. I've never targeted Mac or Linux, but that's what I understand. And in any case, you should use .NET Standard if you want to use a library in .NET Framework (and run it on Windows) or in .NET Core (and want to use it cross-platform) or Mono or Xamarin.
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly