Oxygene, .NET Core and publish

How to publish Oxygene .NET Core applications? Using DOTNET PUBLISH command does not work (.elements file is not recognised). Publish is also not available from VS.

Solution below is when using Fire:

  1. In the project settings, section Release, set Packaging/Publish to YES.
  2. Do a Release build.

Currently the Release build doesn’t create a web.config file, which might be needed when hosting in IIS.

Luckily this has been added in the next Preview; for more info about that see other thread:

There is a setting in EBuild. I don’t know how its exposed in visual studio but in Fire its on the project settings page.

As a result its set in the .elements file.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
  <PropertyGroup>
    <TargetFramework>.NETCore</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
    <RootNamespace>SailingLogFunctions</RootNamespace>
    <Mode>Echoes</Mode>
    <ProjectGuid>{796792DD-F4C0-484D-9DA7-98D793F081B6}</ProjectGuid>
    <OutputType>Library</OutputType>
    <NETCoreSDKVersion>3.1.201</NETCoreSDKVersion>
    <NETCoreRuntimeVersion>3.1.0</NETCoreRuntimeVersion>
    <Publish>True</Publish>
  </PropertyGroup>

Cheers,
John

Can you expose this setting for Windows (Water, VS2019)?
btw. Small typo in menu

Probably. Thing is, every thing I can do with 5 minutes of work in Fire/Water is a weeks worth of work for VS (I’m exaggerating, but not by much). And the VS team is back-logged til 2023. I’ll log a feature request.

Thanks, logged as bugs://84780

For me, an option in Water is enough right now or a command-line batch for EBuild how to publish .oxygene project. VS can wait. I’ve added a line :

<Publish>True</Publish>

to my new .net core project as John suggested but Water didn’t do anything except generating a .dll. Can you explain how publish should be used using Water?

That should be enough.

you should see the task

           -> Task RemObjects.EBuild.Elements.ElementsEchoesNetCorePublish started for WebApplication, Echoes.
           <- Task RemObjects.EBuild.Elements.ElementsEchoesNetCorePublish finished for WebApplication, Echoes, took 0.0078s (0.010s).

run as part of the build, and have more files generated (including in 2539, the Web.config)

When using .NETStandard (default class library setting) :
-- Task RemObjects.EBuild.Elements.ElementsEchoesNetCorePublish skipped for ClassLibrary, Echoes, condition not met.

After changing the framework to .NETCore the Packaging and Publish option appeared in Settings :

-> Task RemObjects.EBuild.Elements.ElementsEchoesNetCorePublish started for ClassLibrary, Echoes.
<- Task RemObjects.EBuild.Elements.ElementsEchoesNetCorePublish finished for ClassLibrary, Echoes, took 0.0156s (0.015s).

but in the Release folder there is no publish directory (like VS does) or a .nupkg file. What am I doing wrong?

We don’t support generating NuGet packages (yet/for now). Publish will only have effect on .NET Core (including ASP.NET Core) app projects.

Hi,
It helps.Thank you