Dockerコンテナに展開するAsp.Net Core 2.0 Webサービスがあります。Dockerコンテナ内の依存パッケージのXmlドキュメントを取得
ウェブサービスでは、xmlドキュメントファイルを生成し、そのファイルをSwagger-uiで使用します。 これは、プロジェクト自体から生成されたxmlドキュメントではうまくいきますが、WebサービスがDockerコンテナにデプロイされているときに表示される組み込みパッケージに対して生成されたxmlコメントを取得できません。
nugetパッケージ(私たちによっても作成されました)にはxmlドキュメントファイルが含まれており、ローカルマシン上でサービスを実行しているときにそれを使い分けることができます。 ドキュメントは、.IncludeXmlCommentsを呼び出すことで手間取ることができます。ドキュメントへのパスは、アセンブリへのパスを取得し、.dll拡張子を.xmlに置き換えることによって決定されます。
私は、パッケージのxmlドキュメントファイルがコンテナに含まれていないため、見つからない可能性があります。 Dockerfileでは私はどちらかも/コピーパッケージのXMLドキュメントファイルを追加し、または公表資産のXMLドキュメントファイルの一部を作成する方法を知っているコマンドたいコマンド
COPY publish .
を参照してください。 私のマシンだけでなく、堅牢な方法でこの作業を行う他のソリューションも歓迎します。
EDIT: Dockerコンテナにxml docファイルが追加されましたが、Swaggerはそのファイルで提供されている説明を表示しません。 私たちは、これに似たものを使用:{PackageNameには}あなたのパッケージの実際の名前に置き換えます
<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>
ているが。パス内のワイルドカードは、バージョンに依存しないようにしています(複数のバージョンがあるので、これで問題が発生するかどうかを確認する必要があります)。