docker - 获取Docker容器中依赖包的Xml文档

标签 docker swagger-ui asp.net-core-2.0 xml-documentation

我们有一个Asp.Net Core 2.0 Web服务,我们将其部署在Docker容器中。

对于Web服务,我们生成一个xml文档文件,并在Swagger-ui中使用该文件。
这对于从项目本身生成的xml文档非常有效,但是当将Web服务部署在Docker容器中时,我看不到为包含的软件包生成的xml注释。

nuget包(也由我们创建)确实包含一个xml文档文件,我们可以在本地计算机上运行该服务时大张旗鼓地使用它。
可通过调用.IncludeXmlComments来使该文档变得张扬,并通过获取程序集的路径,然后用.xml替换.dll扩展名来确定文档的路径。

我怀疑该软件包的xml doc文件未包含在容器中,因此无法找到。在Dockerfile中,我看到了命令

COPY publish .

我想要一个还可以添加/复制包的xml doc文件的命令,或者我想知道如何使xml doc文件成为发布 Assets 的一部分。
任何其他以健壮方式(而不是仅在我的机器上)使该工作有效的解决方案也都受到欢迎。

编辑:
现在,我们在Docker容器中有了额外的xml doc文件,但是Swagger仍然没有显示该文件中提供的描述(在本地运行时会显示)。
我们使用了类似的东西:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">  
    <ItemGroup>
        <DocFile Include="$(USERPROFILE)\.nuget\packages\{packagename}\**\lib\$(TargetFramework)\{PackageName}.xml" />
    </ItemGroup>
    <Copy SourceFiles="@(DocFile)" DestinationFolder="$(PublishDir)" SkipUnchangedFiles="false" />
</Target>

其中{PackageName}应替换为您的包裹的实际名称。路径中的通配符使它保持版本独立性(尽管我们必须检查它是否现在会引起问题,因为我们有多个版本)。

最佳答案

确保已选中xmlt复选框的的XML文档复选框,在项目属性->构建-> XML文档文件下发布配置。您可能已经检查了它的调试配置,但没有检查发行配置。选择项目属性下的下拉菜单中的发布,然后选中XML文档文件复选框。除非您选中版本配置复选框,否则您的docker RUN dotnet发布“” -c版本-o / app将不会生成文档XML文件。

关于docker - 获取Docker容器中依赖包的Xml文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47179239/

相关文章:

docker - 如何在所有容器上执行 Docker 查询命令?

docker - Jenkinsfile:以交互方式在内部运行docker.image(<myimagename>)。

python - 类型错误 : Object of type 'type' is not JSON serializable

angular - 删除 HttpParams 中的空参数

dependency-injection - 如何使用 .NET Core 解析类库中的 DI 类?

docker - 我需要有关docker-compose.yml的信息-如何配置/导出到kubernetes入口

django - 看不到正在本地主机上的 docker 容器中运行的 django 站点

java - 在 swagger UI 试用中发送动态自定义 header

asp.net-web-api - Swagger 不显示真正的错误消息

javascript - 如何阻止 ASP.NET Core 2.0 MVC 缩小修改特定文件?