Swagger 未找到Swashback自定义资源

Swagger 未找到Swashback自定义资源,swagger,swashbuckle,Swagger,Swashbuckle,我在SwaggerConfig.cs中添加了这个字符串 c.CustomAsset("index", thisAssembly, "Table.Web.CustomContent.index.html"); …然后运行应用程序,转到swagger docs并获取错误: 发生了一个错误。 未找到嵌入资源-Table.Web.CustomContent.index.html Swashback.SwaggerUi.AssetNotFound index.html的生成操作属性设置为embedded

我在SwaggerConfig.cs中添加了这个字符串

c.CustomAsset("index", thisAssembly, "Table.Web.CustomContent.index.html");
…然后运行应用程序,转到swagger docs并获取错误:

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

index.html的生成操作属性设置为embedded resource


我该怎么做才能修复它呢?

我今天在一个ASP.NET C#项目中为此挣扎了一段时间,最后通过拼凑一些不同的资源解决了这个问题

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

其次,逻辑名称可能很难识别。在我的例子中,目录名中的一个破折号一旦嵌入就被转换成下划线,导致大量的头发拉扯(头发拉扯?)。获取真实逻辑路径的最简单方法是从Build Output窗口获取它

  • 转到工具=>Options
  • 展开“项目和解决方案”侧栏项,然后单击“构建并运行”
  • 将MSBuild输出设置为详细
  • 清洁解决方案并重建,必要时打开输出窗口 输出日志应该明确地用一行文字说明文件的真实逻辑名,如

    资源文件'swagger ui\SwaggerUiStyle.css'获取清单资源名称'MySolutionName.swagger\u ui.SwaggerUiStyle.css'


    (为了@bkwdesign对这一部分的出色解释)

    我假设this->Table.Web.CustomContent.index.html对应于index.html文件的正确路径。我的意思是它应该是名称空间和file@SillyJohn“Table.Web”是项目名称,在本例中,“CustomContent”是我创建的目录,它应该是项目的名称空间。请参阅Github-@SillyJohn cool中的文档!很高兴知道……)