Получение XML-комментариев из нескольких файлов .csproj для заполнения в пользовательском интерфейсе Swagger. ⇐ C#

Место общения программистов C#
Anonymous
Получение XML-комментариев из нескольких файлов .csproj для заполнения в пользовательском интерфейсе Swagger.

Сообщение Anonymous »

Я знаю, что здесь задавались подобные вопросы, но я действительно в растерянности. В настоящее время у меня есть около 5 файлов .csproj как часть веб-приложения, все из которых содержат комментарии XML. Proj1 — единственный, кто в настоящее время добавляет эти комментарии в документацию Swagger. Я вижу, что файлы .xml создаются с правильной информацией в путях к файлам (например, файл, созданный в proj3/bin/Debug/net6.0/proj3.xml). Но, как уже говорилось, комментарии из proj1 — единственные, которые отображаются в Swagger.
В настоящее время у меня есть Directory.Build.props со следующими строками:

Код: Выделить всё

true
$(NoWarn);1570;1572;1573;1587;1591;1701;1702;1705;1591

и следующая конфигурация Swagger в моем запуске:

Код: Выделить всё

  //  configure swagger API documentation
builder.Services.AddSwaggerGen(config => {
config.SwaggerDoc(appVersion, new OpenApiInfo {
Title = "Proj1 API",
Version = appVersion,
Description = "REST API for control of Proj1 data"
});
config.SchemaFilter();
config.OrderActionsBy(a => $"{a.RelativePath}_{a.HttpMethod}");
config.CustomSchemaIds(x => x.FullName);

//  add the xml comments to the swagger generated json
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
config.IncludeXmlComments(xmlPath);
});

//  build the application with all services

var app = builder.Build();

if (app.Environment.IsDevelopment()) {

//  enable swagger documentation
var swaggerRoute = "api-docs";
app.UseSwagger(c => {
c.RouteTemplate = $"{swaggerRoute}/{{documentName}}/swagger.json";
});
app.UseSwaggerUI(c => {
c.SwaggerEndpoint($"/{swaggerRoute}/{appVersion}/swagger.json", $"Proj1 API {appVersion})");
c.RoutePrefix = swaggerRoute;
});

Я попробовал добавить строку $(OutputPath)$(AssemblyName).xml в качестве другой группы свойств, а также попробовал ее в качестве строки под строкой GenerateDocumentationFile в исходной группе проекта. Я также попробовал добавить настоящую рекламу индивидуально в каждый файл .csproj. Каждый раз я получаю комментарии Xml из файлов, перечисленных только в одном из файлов .csproj. Любая помощь будет принята с благодарностью! Считается ли выполнение мысленных кругов кардиотренировкой?

Подробнее здесь: https://stackoverflow.com/questions/758 ... swagger-ui

Вернуться в «C#»