mganss / XmlSchemaClassGenerator

Generate C# classes from XML Schema files
Apache License 2.0
589 stars 179 forks source link

Question: Use at build time? #518

Closed M-Schiller closed 2 months ago

M-Schiller commented 2 months ago

Thank you for creating this amazing tool and apologies for posting a question here, but I could not find a guide to or usage of what I would like to have in a project I am developing.

Currently, I use a version of XmlSchemaClassGenerator.Console that I need to check into a repository (under tools\..) and use in my project as

  <Target Name="Create classes from schema" BeforeTargets="PreBuildEvent" AfterTargets="Clean">
      <Message Importance="high" Text="Running batch script..." />
      <Exec Command=".\tools\xscgen\XmlSchemaClassGenerator.Console.exe .\data\MySchema.xsd" />
  </Target>

What I am trying to achieve is a way of handling this via the NuGet package and without having to install the dotnet tool (if possible) so that I can also use the functionality in a build pipeline that does not have any tools installed.

mganss commented 2 months ago

I think the easiest way is to use xscgen as a local tool.

Another option of course is to use the XmlSchemaClassGenerator library in a custom console app that can be part of your solution. This may sound harder than it is, should be only a few lines.

In #281 @shuebner started an effort to create a source generator which would probably be ideal for your use case, but unfortunately it has stalled.