包含所有模型的类库没有获得Swagger的Xml注释

时间:2017-08-07 23:15:41

标签: nuget swagger swashbuckle xml-comments nuspec

我有一个公共类库,它被打包为自己的金块库。

它的nuspec看起来像下面的xml:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
    <metadata>
    <id>MyCompany.MyDTOPackage</id>
    <version>1.0.0.0</version>
    <authors>Nate Tregillus</authors>
    <owners>nate</owners>
    <projectUrl>https://github.com/myCompany/ClassLibrary</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <releaseNotes>Intital Release</releaseNotes>
    <description>Common Data Transfer Objects for all apps</description>
    <tags>dto models</tags>
    </metadata>
</package>

当我从这个文件编译nuget包时,内容如下:

lib
-- net45
-- -- MyCompany.MyDTOPackage.dll
-- -- MyCompany.MyDTOPackage.xml

当我尝试使用这个软件包,并在我的swagger文档中使用软件包中的模型时,它们会在我localy调试时出现,但在我通过Kudu部署webapi项目时却不会出现。看着Kudu正在构建的包,它完全忽略了MyCompany.MyDTOPackage.xml文件。我不懂为什么。我可以做些什么来使这项工作?

1 个答案:

答案 0 :(得分:0)

这不是一个金块,招摇或狡诈的问题,它在本地工作的事实表明部署中存在问题......

我建议你联系Kudu团队:
https://github.com/projectkudu/kudu#questions



另一种方法是将XML文件包含为嵌入式资源并以此方式加载。
如果您使用Swashbuckle,则需要添加xml包括:

IncludeXmlComments(() => new XPathDocument(
        thisAssembly.GetManifestResourceStream("FilePath.xml")));

如果您使用Swagger-Net它应该有效,请检查您是否IncludeAllXmlComments,默认情况下已启用。

enter image description here