未找到Swashbuckle定制资产

问题描述 投票:4回答:1

我添加到SwaggerConfig.cs此字符串中

c.CustomAsset("index", thisAssembly, "Table.Web.CustomContent.index.html");

......比我运行该应用程序,请转到swagger文档并获取错误:

发生错误。找不到嵌入式资源-Table.Web.CustomContent.index.htmlSwashbuckle.SwaggerUi.AssetNotFound

[index.html的build action属性设置为嵌入式资源

我该如何解决?
swagger swashbuckle
1个回答
0
投票
今天我在一个ASP.NET C#项目中为此苦了一段时间,最后通过汇总一些不同的资源来解决了这个问题。

首先(如Swagger注释中所述),必须通过在解决方案资源管理器中右键单击该项目并转到“属性”,然后从“构建操作”下拉列表中选择“嵌入式资源”,将该项目标记为

嵌入式资源。

第二,逻辑名称可能难以识别。就我而言,目录名称中的破折号一旦嵌入便被转换为下划线,从而导致大量的头发拉扯(hair_pulling?)。获得真实逻辑路径的最简单方法是从“构建输出”窗口中获取它。

    转到工具=>选项
  1. 展开“项目和解决方案”侧栏项目,然后单击“构建并运行”>
  2. 将MSBuild输出设置为“详细”。
  3. 清理解决方案并进行重建,必要时打开“输出”窗口。
  4. 输出日志应明确显示文件的真实逻辑名称,例如:...

Resource file 'swagger-ui\SwaggerUiStyle.css' gets manifest resource name 'MySolutionName.swagger_ui.SwaggerUiStyle.css'

([credit到@bkwdesign的出色解释)

© www.soinside.com 2019 - 2024. All rights reserved.