You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core中如何访问NuGet包内嵌的swagger-ui.js资源文件

嗨,这个问题我之前也碰到过——默认NuGet打包确实不会自动包含这类非代码的静态资源文件,得手动配置类库的项目文件才行,给你一步步说怎么解决:

步骤1:修改类库项目的.csproj配置

打开你的MyServiceCommon类库的.csproj文件,在节点里添加以下配置,用来指定要打包的swagger-ui.js文件:

<ItemGroup>
  <!-- 匹配swagger-ui文件夹下的swagger-ui.js文件 -->
  <Content Include="swagger-ui\swagger-ui.js">
    <!-- 构建类库时,将文件复制到输出目录 -->
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <!-- 告诉NuGet打包时要包含这个文件 -->
    <Pack>true</Pack>
    <!-- 指定文件在NuGet包中的位置,contentFiles是NuGet自动向引用项目同步内容文件的标准目录 -->
    <PackagePath>contentFiles\any\any\swagger-ui\</PackagePath>
  </Content>
</ItemGroup>

如果你的swagger-ui文件夹里还有其他依赖文件,也可以用通配符swagger-ui\**来包含整个文件夹的内容。

步骤2:重新打包NuGet包

保存.csproj文件后,用dotnet pack命令重新生成NuGet包(或者在Visual Studio里右键类库项目,选择“打包”选项)。

步骤3:在API项目中验证

卸载并重新安装这个新的NuGet包到你的API项目,然后重新构建API项目。这时候你应该能在API项目的bin\debug\netcoreappX.X目录下看到swagger-ui文件夹和里面的swagger-ui.js文件了。

如果还是没出现,可以检查API项目的.csproj里是否启用了ContentFiles的引用(现在大多数.NET Core项目默认是启用的),确保没有添加排除这类文件的配置。

内容的提问来源于stack exchange,提问作者jazza1000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:14:23