Revisamos de forma profundamente cada enunciado de nuestro espacio con el objetivo de mostrarte en todo momento información veraz y actual.
Solución:
Para .Net Core 2 hasta 3.1 versiones es ligeramente diferente, para aquellos que lo encuentran usando una versión más nueva, crearía su
private void ConfigureSwagger(IServiceCollection services)
constructor, agregue la referencia a swagger services.AddSwaggerGen(c => { c.SwaggerDoc(/*populate with your info */);
luego defina un nuevo parámetro que será la ruta para su documentación XML swagger:
var filePath = Path.Combine(AppContext.BaseDirectory, "YourApiName.xml");
.
c.IncludeXmlComments(filePath);
Debería verse algo como esto:
private void ConfigureSwagger(IServiceCollection services)
services.AddSwaggerGen(c =>
c.SwaggerDoc("v1", new Info
Version = "v1",
Title = "YourApiName",
Description = "Your Api Description.",
TermsOfService = "None",
Contact = new Contact
Name = "Contact Title", Email = "[email protected]", Url = ""
);
var filePath = Path.Combine(AppContext.BaseDirectory, "YourApiName.xml");
c.IncludeXmlComments(filePath);
);
Para que esto funcione, debe asegurarse de que la salida de la compilación tenga el archivo de documentación verificado (vea la flecha roja) y la ruta establecida de manera adecuada. me he dado cuenta de que puede quitar la ruta precargada y solo usa binYourApiName.xml
como a continuación:
Habilite la casilla de verificación “Archivo de documentación XML” para cada proyecto del que depende para generar sus archivos en build. Se puede hacer en la pestaña Generar propiedades del proyecto.
Para incluir todos los archivos XML en la implementación, agregue este destino al proyecto publicado csproj
expediente:
Esto copiará todos los archivos XML de bin
carpeta y subcarpetas anidadas (como binReleasenetcoreapp1.1
) para publish
dirección Por supuesto que puedes personalizar ese objetivo.
La documentación de Microsoft aquí sugiere usar un DocumentationFile
etiqueta en su archivo csproj.
Solo asegúrese de tener la compilación correcta para su implementación (Versión/Depuración):
binReleasenetcoreapp2.0APIProject.xml
Acabo de usar esto en la práctica (con los ajustes a continuación) y funciona bien:
binRelease$(TargetFramework)$(MSBuildProjectName).xml
1701;1702;1705;1591