找不到Swashbuckle自定义资产

时间:2016-10-18 02:06:18

标签: swagger swashbuckle

我添加到 SwaggerConfig.cs 此字符串

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

...比运行应用程序,转到 swagger 文档并收到错误:

  

发生了错误。      未找到嵌入式资源 - Table.Web.CustomContent.index.html      Swashbuckle.SwaggerUi.AssetNotFound

index.html 构建操作属性设置为嵌入式资源

我该怎么办才能修复它?

1 个答案:

答案 0 :(得分:0)

今天,我在一个ASP.NET C#项目中为此付出了一段时间的努力,最后通过汇总一些不同的资源来解决了这个问题。

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

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

  1. 转到工具=>选项
  2. 展开“项目和解决方案”侧栏项目,然后单击“构建并运行”
  3. 将“ MSBuild输出”设置为“详细”。
  4. 清洁解决方案并重建,如有必要,打开“输出”窗口。

输出日志应明确显示文件的真实逻辑名称,例如...

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

(@ bkwdesign的credit在这方面的出色解释)