7

Ho aggiunto il pacchetto Swashbuckle al mio progetto ASP Core.Ottieni il percorso del file di output dei commenti XML per ASP Core

Mi piacerebbe configurare Swagger per utilizzare automaticamente generato dai commenti VS xml.

Il problema è che non riesco a trovare il modo per ottenere quella posizione:

  1. PlatformServices.Default.Application.ApplicationBasePath - punti al percorso principale del progetto
  2. Directory.GetCurrentDirectory() - lo stesso
  3. Path.GetFullPath(".") - lo stesso
  4. IHostingEnvironment.WebRootPath - lo stesso

La cartella di output configura d nell'opzione <project>.xproj per BaseIntermediateOutputPath.

Ma non riesco a ottenere questo percorso in fase di esecuzione.

var pathToDoc = "????"; 
options.OperationFilter(new Swashbuckle.SwaggerGen.XmlComments.ApplyXmlActionComments(pathToDoc)); 

soluzioni Bad vedo: opzione di configurazione

  1. metti in AppSettings.json
  2. percorso relativo percorso di progetto (come sto configurando percorso di uscita bin).

Ma mi piacerebbe usare questo con Docker, CI, localhost, quindi non credo che questa sarebbe la soluzione migliore per usare la soluzione hard-coded ..

risposta

2

È possibile provare il seguente funzione per ottenere il percorso del file XML

private string GetXmlCommentsPath() 
     { 
      var app = PlatformServices.Default.Application; 
      return System.IO.Path.Combine(app.ApplicationBasePath, System.IO.Path.ChangeExtension(app.ApplicationName, "xml")); 
     } 

Il file xml ha lo stesso nome dell'applicazione. Attualmente sto usando questo codice nel mio progetto e funziona perfettamente.

+0

funziona nel contenitore Docker? – deeptowncitizen

+0

Non l'ho provato nel contenitore docker, ma funziona in Azure, self hosted e IIS (localhost). Idealmente dovrebbe funzionare anche in docker poiché PlatformServices dovrebbe esporre informazioni specifiche della piattaforma indipendenti dalla piattaforma. Se fai il test, facci sapere se funziona. –

+0

Roba buona. Non sapevo che esistesse 'PlatformServices'. – Andrei

Problemi correlati