未找到 Swashbuckle 自定义资源

Max*_*aev 4 swagger swashbuckle

我将这个字符串添加到SwaggerConfig.cs

c.CustomAsset("index", thisAssembly, "Table.Web.CustomContent.index.html");
Run Code Online (Sandbox Code Playgroud)

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

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

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

我应该做什么来修复它?

kil*_*yte 7

今天,我在 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 对这部分的出色解释)