我有一个公共类库,它被打包为自己的金块库。
它的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
文件。我不懂为什么。我可以做些什么来使这项工作?
答案 0 :(得分:0)
这不是一个金块,招摇或狡诈的问题,它在本地工作的事实表明部署中存在问题......
我建议你联系Kudu团队:
https://github.com/projectkudu/kudu#questions
另一种方法是将XML文件包含为嵌入式资源并以此方式加载。
如果您使用Swashbuckle,则需要添加xml包括:
IncludeXmlComments(() => new XPathDocument(
thisAssembly.GetManifestResourceStream("FilePath.xml")));
如果您使用Swagger-Net它应该有效,请检查您是否IncludeAllXmlComments
,默认情况下已启用。