Import VS2019 projects with .NET Core 3.0 Winforms and WPF frameworks

I didn’t use the latest Elements version so I will try the weekend release.

1 Like

FWIW, ConsoleApp9 resolved


fine for me; I di ghet 3 unknown identifiers, prolly related to UseWPF not being honored yet (ie expected).

Correction, the NETCoreRuntime setting affects what implicit packages are added by default:

                lPackageNames := case Setting["NETCoreRuntime"]:Value:ToLowerInvariant of
                  "": new List<String>("Microsoft.NETCore.App.Ref");
                  "": new List<String>("Microsoft.NETCore.App.Ref", "Microsoft.WindowsDesktop.App.Ref");
                  "": new List<String>("Microsoft.NETCore.App.Ref", "Microsoft.ASPNETCore.App.Ref");

Aside from that, the name goes into the .json files, and its used when debugging to launch the right runtime version. That’s if AFAICT.

This is strange because Winforms and WPF are in the same WindowsDesktop.App package, but only some WPF types are unknown. I also noticed in Water that when you expand the package in References node, not all dll files are listed. Is this important? W.g. WindowsBase is missing.

Is WindowsBase in the package though?

hmm, it is. freaky. I’ll investigate.

Oh, bec cause its already added from Microsoft.NETCore.App.Ref:[3.0.0]. I don’t add the same ref twice…

I think the fix is to NOT reference Microsoft.NETCore.App.Ref, even though I was told we should. committing a fix for today, ut I can’t test it right now, since isn’t available on Mac. B ut with a few temp hacks to ignore that, it compilers for me…

Testing on windows, I get a few errors, logged as bugs://83396: .NET Core WPF app fails to buiild (No type converter, NRE). Might just be that the XAML needs to be adjusted from what .NET 4 used…

                  Reference: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll
E:                No type converter for {}Window.Title [\\Mac\Home\Documents\RemObjects Software\Elements\Water\WPFApplication\Window1.xaml (5)]
E:                Internal error: \\Mac\Home\Documents\RemObjects Software\Elements\Water\WPFApplication\Window1.xaml:System.NullReferenceException: Object reference not set to an instance of an object.
   at RemObjects.Elements.Xaml.XamlToBamlConverter.GetTypeConverterFor(IGetAttributes typ)
   at RemObjects.Elements.Xaml.XamlToBamlConverter.GetTypeConverterFor(IMemberInfo typ)
   at RemObjects.Elements.Xaml.XamlToBamlConverter.WriteStringProperty(XmlNode origin, String value, XamlMember member, Boolean wasdefault)
   at RemObjects.Elements.Xaml.XamlToBamlConverter.WriteElement(XmlElement el, Boolean isbinding)
   at RemObjects.Elements.Xaml.XamlToBamlConverter.Convert(String fn, String Xaml, String Type, String namen)
   at RemObjects.Oxygene.Code.ElementsSyntaxModel.IntFillTypes()
E:                No type converter for {}Application.StartupUri [\\Mac\Home\Documents\RemObjects Software\Elements\Water\WPFApplication\App.xaml (6)]
                  -> Phase Resolving Bodies started.
E:                   Unknown namespace "System.Xml" in uses list [\\Mac\Home\Documents\RemObjects Software\Elements\Water\WPFApplication\App.xaml.swift (3)]
E:                   Unknown identifier "InitializeComponent" [\\Mac\Home\Documents\RemObjects Software\Elements\Water\WPFApplication\Window1.xaml.swift (15)]
                  <- Phase Resolving Bodies finished, took 1.8750s.

This is my test project: (58.7 KB)

I tested last release and finally managed to build full project with Winforms and WPF on .net core 3.0 :slight_smile: But I had to change Settings to as main sdk/runtime and add Microsoft.NETCore.App.Ref as a package reference (to recognise WinForms). Then both frameworks compiled. Is that logical for You? I will test it more and let you know.

Well, yes.

Ok are we mixing WPF and WinForms here? For WPF, which I tested with your last testcase, I had to drop Microsoft.NETCore.App.Ref from the references to make it build, because otherwise it got the wring WindowsBase.dll from that reference . I didn’'t test WinForms, and I;'m not sure if you’re supposed to be ab le to combine the two…

Yes, mixing. Original project in .net 4.5 has both frameworks. New port to .net core also should have both. As I wrote earlier, this compiles now but I must check in VS 2019 if it works in design time and runtime.

Ok, can you send m your fixed project for comparison? (134.0 KB)
This should be minimal test case. In my big project I see (Implicit) at WindowsDesktop reference. In this small project there is implicit notation. Does it matter ?

EBuild will add one or more default packages, baed on the SDK type you selected, if they aren’t already referenced. if you have the reference in our project, it will show was normal; if you don’t, it will shows as “(Implicit)” to indicate that even though your project did not specifically (explicitly) specify it, it is still being referenced.

It should make no factual difference to what actually gets referenced, whether the package referent tis explicit or implicit.

Update: looks like both packages are needed, but the dlls from Desktop need to take precedence over the ones from plain Core. What morons design this stuff? In any case, fixed for vNext.

Thanks. Yes, a typical WIndows dll hell :frowning:

1 Like

Purposely shipping an empty WindowsBase.dll in the core package is beyond dll hell, its malicious. WTF are they thinking…? :slight_smile:

1 Like

Today I had internet offline for a few hours ( how to live with that :wink: ). I wanted to compile the project that we are testing but I got error :

Exception processing package reference Microsoft.WindowsDesktop.App.Ref:[3.0.0] : The operation has timed out

although the package is referenced implicit and exists on a local drive. Is that correct behaviour of Water?

Hmm. Did you build this or another project that uses this package, before? of so, it should find it in the local cache. If not, the yes, int would have to go out get the package from NuGet servers.

I’ll try myself, here, what happens.

Fwiw, new .NET Core app rebuilds for me clean, without internet connection:

~> Breakpoint at /Users/mh/Code/Elements/Source/EBuild/Source/Elements.EBuild/Target+Extension.pas,111 un-mapped to /c:/CI/b/elements/937/Source/EBuild/Source/Elements.EBuild/Target+Extension.pas
~> Breakpoint at /Users/mh/Code/Elements/Source/EBuild/Source/Elements.EBuild/Target+Extension.pas,138 un-mapped to /c:/CI/b/elements/937/Source/EBuild/Source/Elements.EBuild/Target+Extension.pas
~> Process Builder started
RemObjects EBuild. An open source build engine for Elements and beyond.
Copyright RemObjects Software 2016-. All Rights Reserved. Created by marc hoffman.
Local build.

   -> Task RemObjects.EBuild.BuildSolution started.
      -> Project NetCoreConsoleApplication443 started.
         -> Task RemObjects.EBuild.Elements.ElementsBuildProject started for NetCoreConsoleApplication443.
            -> Task RemObjects.EBuild.Elements.ElementsApplyLegacySettings started for NetCoreConsoleApplication443, Echoes.
               Mapping DefineConstants=DEBUG;TRACE; to ConditionalDefines in Target Echoes
               Mapping AssemblyName=NetCoreConsoleApplication443 to BinaryName in Target Echoes
               Mapping CpuType=anycpu to Architecture in Target Echoes
            <- Task RemObjects.EBuild.Elements.ElementsApplyLegacySettings finished for NetCoreConsoleApplication443, Echoes, took 0.0121s (0.0155s).
            -> Task RemObjects.EBuild.Elements.ElementsSanityCheck started for NetCoreConsoleApplication443, Echoes.
            <- Task RemObjects.EBuild.Elements.ElementsSanityCheck finished for NetCoreConsoleApplication443, Echoes, took 0.0008s (0.0013s).
            -> Task RemObjects.EBuild.Elements.ElementsPreparePlatforms started for NetCoreConsoleApplication443.
               Preparing target 'Echoes' (platform 'Echoes').
D:             Target-specific Settings, before prepare
D:               - <Architecture = anycpu [Target: Echoes]>
D:               - <BinaryName = NetCoreConsoleApplication443 [Target: Echoes]>
D:               - <ConditionalDefines = DEBUG;TRACE; [Target: Echoes]>
D:               - <Mode = Echoes [Target: Echoes]>
D:               - <OutputType = Executable [Target: Echoes]>
D:               - <SubMode = .NET [Target: Echoes]>
               -> Task RemObjects.EBuild.Elements.ElementsPreflightEchoes started for NetCoreConsoleApplication443.
               <- Task RemObjects.EBuild.Elements.ElementsPreflightEchoes finished for NetCoreConsoleApplication443, took 0.0004s (0.0010s).
               -> Task RemObjects.EBuild.Elements.ElementsPrepareEchoesPlatform started for NetCoreConsoleApplication443, Echoes.
W:                No .NET Core version was specified, and no default version could be determined for 'Microsoft.WindowsDesktop.App'. Make sure .NET Core is installed and supports 'Microsoft.WindowsDesktop.App'.
W:                .NET Core runtime 'Microsoft.WindowsDesktop.App' is not installed.
                  Adding implicit package reference to 'Microsoft.WindowsDesktop.App.Ref:[3.0]'.
                  Adding implicit package reference to 'Microsoft.NETCore.App.Ref:[3.0]'.
               <- Task RemObjects.EBuild.Elements.ElementsPrepareEchoesPlatform finished for NetCoreConsoleApplication443, Echoes, took 0.0786s (0.0847s).
D:             Target-specific Settings, after prepare
D:               - <Architecture = anycpu [Target: Echoes]>
D:               - <BinaryName = NetCoreConsoleApplication443 [Target: Echoes]>
D:               - <ConditionalDefines = DEBUG;TRACE; [Target: Echoes]>
D:               - <GenerateMDB = False [Target: Echoes]>
D:               - <IDE:TargetInfo = .NETCoreApp3.0 (compatible with netstandard2.1) [Target: Echoes]>
D:               - <ImpliedConditionalDefines = NETCOREAPP;NETCOREAPP3_0 [Target: Echoes]>
D:               - <Mode = Echoes [Target: Echoes]>
D:               - <NETCoreRuntimeVersion = 3.0 [Target: Echoes]>
D:               - <NETCoreSDKFolder = /usr/local/share/dotnet/sdk/3.0.100-preview5-011568 [Target: Echoes]>
D:               - <NETStandardVersion = 2.1 [Target: Echoes]>
D:               - <NuGetPlatformName = netcoreapp [Target: Echoes]>
D:               - <NuGetPlatformVersion = 3.0 [Target: Echoes]>
D:               - <OutputType = Executable [Target: Echoes]>
D:               - <SubMode = .NETCore [Target: Echoes]>
D:               - <SubModeNameOverride = .NETCore3.0 [Target: Echoes]>
D:               - <TargetFrameworkName = .NETCoreApp [Target: Echoes]>
D:               - <TargetFrameworkNameLong = .NETCoreApp,Version=v3.0 [Target: Echoes]>
D:               - <TargetFrameworkVersion = 3.0 [Target: Echoes]>
            <- Task RemObjects.EBuild.Elements.ElementsPreparePlatforms finished for NetCoreConsoleApplication443, took 0.1101s (0.1129s).
            -> Task RemObjects.EBuild.Elements.ElementsResolveSourceFiles started for NetCoreConsoleApplication443, Echoes.
            <- Task RemObjects.EBuild.Elements.ElementsResolveSourceFiles finished for NetCoreConsoleApplication443, Echoes, took 0.0072s (0.0089s).
            -- Task RemObjects.EBuild.Elements.ElementsResolveHeaderImportFiles skipped for NetCoreConsoleApplication443, Echoes, condition not met.
            -> Task RemObjects.EBuild.Elements.ElementsPreCompile started for NetCoreConsoleApplication443, Echoes.
               -> Task RemObjects.EBuild.Elements.ElementsPreCompileEchoes started for NetCoreConsoleApplication443, Echoes.
                  -> Task RemObjects.EBuild.Elements.ElementsResolveContent started for NetCoreConsoleApplication443, Echoes.
                  <- Task RemObjects.EBuild.Elements.ElementsResolveContent finished for NetCoreConsoleApplication443, Echoes, took 0.0005s (0.0012s).
                  -> Task RemObjects.EBuild.Elements.ElementsResolveResourceFiles started for NetCoreConsoleApplication443, Echoes.
                  <- Task RemObjects.EBuild.Elements.ElementsResolveResourceFiles finished for NetCoreConsoleApplication443, Echoes, took 0.0006s (0.0015s).
                  -> Task RemObjects.EBuild.Elements.ElementsEchoesProcessResources started for NetCoreConsoleApplication443, Echoes.
                     Processing Resource 'Properties\Resources.resx' to '/Users/mh/Library/Application Support/RemObjects Software/EBuild/Obj/NetCoreConsoleApplication443-DE64A61F0D649A69CC3A83B4D3D2E3DEA4BA1F52/Debug/Echoes/res/Properties\Resources.resources'.
~> Ignored exception of type System.UnauthorizedAccessException on thread 0001 ()
~> Message: Access to the path "/Library/Frameworks/Mono.framework/Versions/5.16.0/etc/mono/registry/last-btime" is denied.
                  <- Task RemObjects.EBuild.Elements.ElementsEchoesProcessResources finished for NetCoreConsoleApplication443, Echoes, took 0.1412s (0.1474s).
                  -> Task RemObjects.EBuild.Elements.ElementsEchoesResolveXamlFiles started for NetCoreConsoleApplication443, Echoes.
                  <- Task RemObjects.EBuild.Elements.ElementsEchoesResolveXamlFiles finished for NetCoreConsoleApplication443, Echoes, took 0.0002s (0.0010s).
               <- Task RemObjects.EBuild.Elements.ElementsPreCompileEchoes finished for NetCoreConsoleApplication443, Echoes, took 0.0001s (0.1526s).
               -- Task RemObjects.EBuild.Elements.ElementsPreCompileToffee skipped for NetCoreConsoleApplication443, Echoes, condition not met.
               -- Task RemObjects.EBuild.Elements.ElementsPreCompileCooper skipped for NetCoreConsoleApplication443, Echoes, condition not met.
               -- Task RemObjects.EBuild.Elements.ElementsPreCompileIsland skipped for NetCoreConsoleApplication443, Echoes, condition not met.
            <- Task RemObjects.EBuild.Elements.ElementsPreCompile finished for NetCoreConsoleApplication443, Echoes, took 0.0000s (0.3239s).
            -- Task RemObjects.EBuild.Elements.ElementsApplyLegacySettings skipped for NetCoreConsoleApplication443, Echoes, already ran.
            -- Task RemObjects.EBuild.Elements.ElementsPreparePlatforms skipped for NetCoreConsoleApplication443, already ran.
            -> Task RemObjects.EBuild.Elements.ElementsCheckForTargetlessReferences started for NetCoreConsoleApplication443.
            <- Task RemObjects.EBuild.Elements.ElementsCheckForTargetlessReferences finished for NetCoreConsoleApplication443, took 0.0007s (0.0021s).
            -> Task RemObjects.EBuild.Elements.ElementsResolveReferences started for NetCoreConsoleApplication443.
               -> Target Echoes started.
                  -- Task RemObjects.EBuild.Elements.ElementsProcessSdkReferences skipped for NetCoreConsoleApplication443, Echoes, condition not met.
                  -- Task RemObjects.EBuild.Elements.ElementsProcessComReferences skipped for NetCoreConsoleApplication443, Echoes, condition not met.
                  -> Task RemObjects.EBuild.Elements.ElementsProcessNuGetReferences started for NetCoreConsoleApplication443, Echoes.
D:                   Package Microsoft.WindowsDesktop.App.Ref:3.0.0 found in local cache.
D:                   Package Microsoft.NETCore.App.Ref:3.0.0 found in local cache.
                     Adding .dll reference Accessibility.dll.
D:                   Loading compiler from '/Users/mh/Code/Elements/Bin/RemObjects.Elements.dll'
                     Adding .dll reference Microsoft.Win32.Registry.AccessControl.dll.
                     Adding .dll reference Microsoft.Win32.Registry.dll.
                     Adding .dll reference Microsoft.Win32.SystemEvents.dll.
                     Adding .dll reference PresentationCore.dll.
                     Adding .dll reference PresentationFramework.Aero.dll.
                     Adding .dll reference PresentationFramework.Aero2.dll.
                     Adding .dll reference PresentationFramework.AeroLite.dll.
                     Adding .dll reference PresentationFramework.Classic.dll.
                     Adding .dll reference PresentationFramework.Luna.dll.
                     Adding .dll reference PresentationFramework.Royale.dll.
                     Adding .dll reference PresentationFramework.dll.
                     Adding .dll reference PresentationUI.dll.
                     Adding .dll reference ReachFramework.dll.
                     Adding .dll reference System.CodeDom.dll.
                     Adding .dll reference System.Configuration.ConfigurationManager.dll.
                     Adding .dll reference System.Design.dll.
                     Adding .dll reference System.Diagnostics.EventLog.dll.
                     Adding .dll reference System.Diagnostics.PerformanceCounter.dll.
                     Adding .dll reference System.DirectoryServices.dll.
                     Adding .dll reference System.Drawing.Common.dll.
                     Adding .dll reference System.Drawing.Design.dll.
                     Adding .dll reference System.Drawing.dll.
                     Adding .dll reference System.IO.FileSystem.AccessControl.dll.
                     Adding .dll reference System.IO.Packaging.dll.
                     Adding .dll reference System.IO.Pipes.AccessControl.dll.
                     Adding .dll reference System.Printing.dll.
                     Adding .dll reference System.Resources.Extensions.dll.
                     Adding .dll reference System.Security.AccessControl.dll.
                     Adding .dll reference System.Security.Cryptography.Cng.dll.
                     Adding .dll reference System.Security.Cryptography.Pkcs.dll.
                     Adding .dll reference System.Security.Cryptography.ProtectedData.dll.
                     Adding .dll reference System.Security.Cryptography.Xml.dll.
                     Adding .dll reference System.Security.Permissions.dll.
                     Adding .dll reference System.Security.Principal.Windows.dll.
                     Adding .dll reference System.Threading.AccessControl.dll.
                     Adding .dll reference System.Windows.Controls.Ribbon.dll.
                     Adding .dll reference System.Windows.Extensions.dll.
                     Adding .dll reference System.Windows.Forms.Design.Editors.dll.
                     Adding .dll reference System.Windows.Forms.Design.dll.
                     Adding .dll reference System.Windows.Forms.dll.
                     Adding .dll reference System.Windows.Input.Manipulations.dll.
                     Adding .dll reference System.Windows.Presentation.dll.
                     Adding .dll reference System.Xaml.dll.
                     Adding .dll reference UIAutomationClient.dll.
                     Adding .dll reference UIAutomationClientSideProviders.dll.
                     Adding .dll reference UIAutomationProvider.dll.
                     Adding .dll reference UIAutomationTypes.dll.
                     Adding .dll reference WindowsBase.dll.
                     Adding .dll reference WindowsFormsIntegration.dll.
                     Adding .dll reference Microsoft.CSharp.dll.
                     Adding .dll reference Microsoft.VisualBasic.Core.dll.
                     Adding .dll reference Microsoft.VisualBasic.dll.
                     Adding .dll reference Microsoft.Win32.Primitives.dll.
                     Adding .dll reference System.AppContext.dll.
                     Adding .dll reference System.Buffers.dll.
                     Adding .dll reference System.Collections.Concurrent.dll.
                     Adding .dll reference System.Collections.Immutable.dll.
                     Adding .dll reference System.Collections.NonGeneric.dll.
                     Adding .dll reference System.Collections.Specialized.dll.
                     Adding .dll reference System.Collections.dll.
                     Adding .dll reference System.ComponentModel.Annotations.dll.
                     Adding .dll reference System.ComponentModel.DataAnnotations.dll.
                     Adding .dll reference System.ComponentModel.EventBasedAsync.dll.
                     Adding .dll reference System.ComponentModel.Primitives.dll.
                     Adding .dll reference System.ComponentModel.TypeConverter.dll.
                     Adding .dll reference System.ComponentModel.dll.
                     Adding .dll reference System.Configuration.dll.
                     Adding .dll reference System.Console.dll.
                     Adding .dll reference System.Core.dll.
                     Adding .dll reference System.Data.Common.dll.
                     Adding .dll reference System.Data.DataSetExtensions.dll.
                     Adding .dll reference System.Data.dll.
                     Adding .dll reference System.Diagnostics.Contracts.dll.
                     Adding .dll reference System.Diagnostics.Debug.dll.
                     Adding .dll reference System.Diagnostics.DiagnosticSource.dll.
                     Adding .dll reference System.Diagnostics.FileVersionInfo.dll.
                     Adding .dll reference System.Diagnostics.Process.dll.
                     Adding .dll reference System.Diagnostics.StackTrace.dll.
                     Adding .dll reference System.Diagnostics.TextWriterTraceListener.dll.
                     Adding .dll reference System.Diagnostics.Tools.dll.
                     Adding .dll reference System.Diagnostics.TraceSource.dll.
                     Adding .dll reference System.Diagnostics.Tracing.dll.
                     Adding .dll reference System.Drawing.Primitives.dll.
                     Ignoring duplicate reference to 'System.Drawing.dll' from Microsoft.NETCore.App.Ref:[3.0].
                     > New path '/Users/mh/Library/Application Support/RemObjects Software/EBuild/Packages/NuGet/'.
                     > Old path '/Users/mh/Library/Application Support/RemObjects Software/EBuild/Packages/NuGet/'.
                     | Added by package 'Microsoft.NETCore.App.Ref:[3.0]'.
                     | Existing reference was added by package 'Microsoft.WindowsDesktop.App.Ref:[3.0]'.
                     Adding .dll reference System.Dynamic.Runtime.dll.
                     Adding .dll reference System.Globalization.Calendars.dll.
                     Adding .dll reference System.Globalization.Extensions.dll.
                     Adding .dll reference System.Globalization.dll.
                     Adding .dll reference System.IO.Compression.Brotli.dll.
                     Adding .dll reference System.IO.Compression.FileSystem.dll.
                     Adding .dll reference System.IO.Compression.ZipFile.dll.
                     Adding .dll reference System.IO.Compression.dll.
                     Adding .dll reference System.IO.FileSystem.DriveInfo.dll.
                     Adding .dll reference System.IO.FileSystem.Primitives.dll.
                     Adding .dll reference System.IO.FileSystem.Watcher.dll.
                     Adding .dll reference System.IO.FileSystem.dll.
                     Adding .dll reference System.IO.IsolatedStorage.dll.
                     Adding .dll reference System.IO.MemoryMappedFiles.dll.
                     Adding .dll reference System.IO.Pipes.dll.
                     Adding .dll reference System.IO.UnmanagedMemoryStream.dll.
                     Adding .dll reference System.IO.dll.
                     Adding .dll reference System.Linq.Expressions.dll.
                     Adding .dll reference System.Linq.Parallel.dll.
                     Adding .dll reference System.Linq.Queryable.dll.
                     Adding .dll reference System.Linq.dll.
                     Adding .dll reference System.Memory.dll.
                     Adding .dll reference System.Net.Http.dll.
                     Adding .dll reference System.Net.HttpListener.dll.
                     Adding .dll reference System.Net.Mail.dll.
                     Adding .dll reference System.Net.NameResolution.dll.
                     Adding .dll reference System.Net.NetworkInformation.dll.
                     Adding .dll reference System.Net.Ping.dll.
                     Adding .dll reference System.Net.Primitives.dll.
                     Adding .dll reference System.Net.Requests.dll.
                     Adding .dll reference System.Net.Security.dll.
                     Adding .dll reference System.Net.ServicePoint.dll.
                     Adding .dll reference System.Net.Sockets.dll.
                     Adding .dll reference System.Net.WebClient.dll.
                     Adding .dll reference System.Net.WebHeaderCollection.dll.
                     Adding .dll reference System.Net.WebProxy.dll.
                     Adding .dll reference System.Net.WebSockets.Client.dll.
                     Adding .dll reference System.Net.WebSockets.dll.
                     Adding .dll reference System.Net.dll.
                     Adding .dll reference System.Numerics.Vectors.dll.
                     Adding .dll reference System.Numerics.dll.
                     Adding .dll reference System.ObjectModel.dll.
                     Adding .dll reference System.Reflection.DispatchProxy.dll.
                     Adding .dll reference System.Reflection.Emit.ILGeneration.dll.
                     Adding .dll reference System.Reflection.Emit.Lightweight.dll.
                     Adding .dll reference System.Reflection.Emit.dll.
                     Adding .dll reference System.Reflection.Extensions.dll.
                     Adding .dll reference System.Reflection.Metadata.dll.
                     Adding .dll reference System.Reflection.Primitives.dll.
                     Adding .dll reference System.Reflection.TypeExtensions.dll.
                     Adding .dll reference System.Reflection.dll.
                     Adding .dll reference System.Resources.Reader.dll.
                     Adding .dll reference System.Resources.ResourceManager.dll.
                     Adding .dll reference System.Resources.Writer.dll.
                     Adding .dll reference System.Runtime.CompilerServices.Unsafe.dll.
                     Adding .dll reference System.Runtime.CompilerServices.VisualC.dll.
                     Adding .dll reference System.Runtime.Extensions.dll.
                     Adding .dll reference System.Runtime.Handles.dll.
                     Adding .dll reference System.Runtime.InteropServices.RuntimeInformation.dll.
                     Adding .dll reference System.Runtime.InteropServices.WindowsRuntime.dll.
                     Adding .dll reference System.Runtime.InteropServices.dll.
                     Adding .dll reference System.Runtime.Intrinsics.dll.
                     Adding .dll reference System.Runtime.Loader.dll.
                     Adding .dll reference System.Runtime.Numerics.dll.
                     Adding .dll reference System.Runtime.Serialization.Formatters.dll.
                     Adding .dll reference System.Runtime.Serialization.Json.dll.
                     Adding .dll reference System.Runtime.Serialization.Primitives.dll.
                     Adding .dll reference System.Runtime.Serialization.Xml.dll.
                     Adding .dll reference System.Runtime.Serialization.dll.
                     Adding .dll reference System.Runtime.dll.
                     Adding .dll reference System.Security.Claims.dll.
                     Adding .dll reference System.Security.Cryptography.Algorithms.dll.
                     Adding .dll reference System.Security.Cryptography.Csp.dll.
                     Adding .dll reference System.Security.Cryptography.Encoding.dll.
                     Adding .dll reference System.Security.Cryptography.Primitives.dll.
                     Adding .dll reference System.Security.Cryptography.X509Certificates.dll.
                     Adding .dll reference System.Security.Principal.dll.
                     Adding .dll reference System.Security.SecureString.dll.
                     Adding .dll reference System.Security.dll.
                     Adding .dll reference System.ServiceModel.Web.dll.
                     Adding .dll reference System.ServiceProcess.dll.
                     Adding .dll reference System.Text.Encoding.CodePages.dll.
                     Adding .dll reference System.Text.Encoding.Extensions.dll.
                     Adding .dll reference System.Text.Encoding.dll.
                     Adding .dll reference System.Text.Encodings.Web.dll.
                     Adding .dll reference System.Text.Json.dll.
                     Adding .dll reference System.Text.RegularExpressions.dll.
                     Adding .dll reference System.Threading.Channels.dll.
                     Adding .dll reference System.Threading.Overlapped.dll.
                     Adding .dll reference System.Threading.Tasks.Dataflow.dll.
                     Adding .dll reference System.Threading.Tasks.Extensions.dll.
                     Adding .dll reference System.Threading.Tasks.Parallel.dll.
                     Adding .dll reference System.Threading.Tasks.dll.
                     Adding .dll reference System.Threading.Thread.dll.
                     Adding .dll reference System.Threading.ThreadPool.dll.
                     Adding .dll reference System.Threading.Timer.dll.
                     Adding .dll reference System.Threading.dll.
                     Adding .dll reference System.Transactions.Local.dll.
                     Adding .dll reference System.Transactions.dll.
                     Adding .dll reference System.ValueTuple.dll.
                     Adding .dll reference System.Web.HttpUtility.dll.
                     Adding .dll reference System.Web.dll.
                     Adding .dll reference System.Windows.dll.
                     Adding .dll reference System.Xml.Linq.dll.
                     Adding .dll reference System.Xml.ReaderWriter.dll.
                     Adding .dll reference System.Xml.Serialization.dll.
                     Adding .dll reference System.Xml.XDocument.dll.
                     Adding .dll reference System.Xml.XPath.XDocument.dll.
                     Adding .dll reference System.Xml.XPath.dll.
                     Adding .dll reference System.Xml.XmlDocument.dll.
                     Adding .dll reference System.Xml.XmlSerializer.dll.
                     Adding .dll reference System.Xml.dll.
                     Adding .dll reference System.dll.
                     Ignoring duplicate reference to 'WindowsBase.dll' from Microsoft.NETCore.App.Ref:[3.0].
                     > New path '/Users/mh/Library/Application Support/RemObjects Software/EBuild/Packages/NuGet/'.
                     > Old path '/Users/mh/Library/Application Support/RemObjects Software/EBuild/Packages/NuGet/'.
                     | Added by package 'Microsoft.NETCore.App.Ref:[3.0]'.
                     | Existing reference was added by package 'Microsoft.WindowsDesktop.App.Ref:[3.0]'.
                     Adding .dll reference mscorlib.dll.
                     Adding .dll reference netstandard.dll.
                  <- Task RemObjects.EBuild.Elements.ElementsProcessNuGetReferences finished for NetCoreConsoleApplication443, Echoes, took 0.7492s (0.7512s).
 <- Task RemObjects.EBuild.BuildSolution finished for NetCoreConsoleApplication443, took 3.5396s (3.5428s).
~> Process Builder terminated with exit code 0

key part is:

                  -> Task RemObjects.EBuild.Elements.ElementsProcessNuGetReferences started for NetCoreConsoleApplication443, Echoes.
D:                   Package Microsoft.WindowsDesktop.App.Ref:3.0.0 found in local cache.
D:                   Package Microsoft.NETCore.App.Ref:3.0.0 found in local cache.