Docker 컨테이너에 배포하는 Asp.Net Core 2.0 웹 서비스가 있습니다.Docker 컨테이너의 종속 패키지에 대한 Xml 설명서를 가져옵니다.
웹 서비스의 경우 xml 문서 파일을 생성하고 Swagger-ui에서 해당 파일을 사용합니다. 이것은 프로젝트 자체에서 생성 된 XML 문서에 대해서는 잘 작동하지만 웹 서비스가 Docker 컨테이너에 배포 될 때 포함 된 패키지에 대해 생성 된 XML 주석을 볼 수 없습니다.
(우리가 만든) nuget 패키지에는 xml 문서 파일이 포함되어 있으며 로컬 컴퓨터에서 서비스를 실행할 때이를 사용할 수 있습니다. .IncludeXmlComments를 호출하여 문서를 멋지게 사용할 수 있으며 문서의 경로는 어셈블리 경로를 가져온 다음 .dll 확장명을 .xml로 바꿈으로써 결정됩니다.
패키지의 xml doc 파일이 컨테이너에 포함되어 있지 않아서 찾을 수 없다고 생각됩니다. Dockerfile에서 내가 명령을 참조
COPY publish .
나는 것 중 하나 또한 복사/패키지의 XML 문서 파일을 추가하거나 게시 자산은 XML 문서 파일 부분을 만드는 방법을 알고 같은 명령. 내 컴퓨터뿐만 아니라 강력한 방식으로이 작업을 수행하는 다른 솔루션도 환영합니다.
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>
있는합니다. 경로의 와일드 카드는 버전을 독립적으로 유지합니다 (여러 버전이 있기 때문에 문제가 발생하는지 확인해야하지만).