MSBuild

Rico Suter edited this page Nov 5, 2018 · 31 revisions

Package: NSwag.MSBuild

Important for .NET Core: Assembly loading#net-core

After installing the NSwag.MSBuild NuGet package in your project, you can use the variable $(NSwagExe) in your .csproj file to run the NSwag command line tool in an MSBuild target. This way the tools can easily be updated via NuGet. The /controller parameter can be omitted to generate a Swagger specification for all controllers.

<Target Name="NSwag" AfterTargets="Build">
    <Exec Command="$(NSwagExe) aspnetcore2swagger /assembly:$(OutDir)/MyWebAssembly.dll /output:swagger.json" />
    <Exec Command="$(NSwagExe) swagger2tsclient /input:swagger.json /output:Scripts/MyController.ts" />
</Target>

For better testability, it is recommended to create an NSwag Configuration Document (e.g. with NSwagStudio) and use:

<Target Name="NSwag" AfterTargets="Build">
    <Exec Command="$(NSwagExe) run nswag.json" />
</Target>

For .NET Core (in the sample 2.0) we recommend:

<Target Name="NSwag" AfterTargets="Build">
  <Copy SourceFiles="@(ReferencePath)" DestinationFolder="$(OutDir)References" />
  <Exec Command="$(NSwagExe_Core20) run nswag.json /variables:Configuration=$(Configuration)" />
  <RemoveDir Directories="$(OutDir)References" />
</Target>

For more information about the missing DLLs in .NET Core, see Assembly loading#net-core.

More information on nswag run.

Runtime:

If you need to run the NSwag command line in x86 mode, use the $(NSwagExe_x86) placeholder. For .NET Core projects, one of the placeholders $(NSwagExe_Core##) (e.g. $(NSwagExe_Core20) for .NET Core 2.0) should be used instead of $(NSwagExe).

Available properties:

  • NSwagExe
  • NSwagExe_x86
  • NSwagExe_Core10
  • NSwagExe_Core11
  • NSwagExe_Core20
  • NSwagExe_Core21
  • NSwagDir
  • NSwagDir_Core10
  • NSwagDir_Core11
  • NSwagDir_Core20
  • NSwagDir_Core21

NSwag.MSBuild.props

See Command Line for more information.

TODO: Rename page to NSwag.MSBuild

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.