容器环境下如何将项目依赖的NuGet包中的XML文档添加到Swagger

容器环境下如何将NuGet包XML文档添加到Swagger
https://blog.csdn.net/fuluadmin/article/details/117275547

https://learn.microsoft.com/zh-cn/nuget/reference/cli-reference/cli-ref-environment-variables
https://learn.microsoft.com/zh-cn/visualstudio/msbuild/common-msbuild-project-items?view=vs-2022
https://learn.microsoft.com/zh-cn/nuget/create-packages/select-assemblies-referenced-by-projects
https://learn.microsoft.com/zh-cn/visualstudio/msbuild/msbuild-targets?view=vs-2022
https://learn.microsoft.com/zh-cn/nuget/consume-packages/package-references-in-project-files
https://learn.microsoft.com/zh-cn/nuget/consume-packages/managing-the-global-packages-and-cache-folders

\src\Tsc.LocalLife.InsteadOrder.Domain\Tsc.LocalLife.InsteadOrder.Domain.csproj

<PropertyGroup>
	<TargetFramework>.net6.0</TargetFramework>
	<GenerateDocumentationFile>true</GenerateDocumentationFile>
	<LangVersion>latest</LangVersion>
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)'=='Release'">
	<PackageReference Include="Tsc.LocalLife.PubDomain" Version="1.0.0-ci.*" GeneratePathProperty="true">
		<CopyToOutputDirectory>lib\net6.0\*.xml</CopyToOutputDirectory>
	</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
  <ProjectReference Include="..\..\..\Tsc.LocalLife.PubDomain\src\Tsc.LocalLife.PubDomain\Tsc.LocalLife.PubDomain.csproj" />
</ItemGroup>

<Target Name="AfterTargetsBuild" AfterTargets="Build">
	<ItemGroup>
		<PackageReferenceFiles
			   Condition="%(PackageReference.CopyToOutputDirectory) != ''"
			   Include="$(NugetPackageRoot)\$([MSBuild]::Escape('%(PackageReference.Identity)').ToLower())\%(PackageReference.Version)\%(PackageReference.CopyToOutputDirectory)" />
	</ItemGroup>
	<Message Text="复制文件:@(PackageReferenceFiles)" Importance="high"></Message>
	<Copy SourceFiles="@(PackageReferenceFiles)" DestinationFolder="$(OutDir)" />
</Target>

<Target Name="AfterTargetsPublish" AfterTargets="Publish">
	<ItemGroup>
		<PackageReferenceFiles
			   Condition="%(PackageReference.CopyToOutputDirectory) != ''"
			   Include="$(NugetPackageRoot)\$([MSBuild]::Escape('%(PackageReference.Identity)').ToLower())\%(PackageReference.Version)\%(PackageReference.CopyToOutputDirectory)" />
	</ItemGroup>
	<Message Text="复制文件:@(PackageReferenceFiles)" Importance="high"></Message>
	<Copy SourceFiles="@(PackageReferenceFiles)" DestinationFolder="$(PublishDir)" />
</Target>

\src\Tsc.LocalLife.InsteadOrder.WebApi\Tsc.LocalLife.InsteadOrder.WebApi.csproj

<PropertyGroup>
	<TargetFramework>.net6.0</TargetFramework>
	<GenerateDocumentationFile>true</GenerateDocumentationFile>
	<LangVersion>latest</LangVersion>
</PropertyGroup>

<ItemGroup>
	<ProjectReference Include="..\Tsc.LocalLife.InsteadOrder.Domain\Tsc.LocalLife.InsteadOrder.Domain.csproj">
		<CopyToOutputDirectory>..\Tsc.LocalLife.InsteadOrder.Domain\bin\$(Configuration)\.net6.0\*.xml</CopyToOutputDirectory>
	</ProjectReference>
</ItemGroup>

<Target Name="AfterTargetsBuild" AfterTargets="Build">
	<ItemGroup>
		<ProjectReferenceFiles 
			Condition="%(ProjectReference.CopyToOutputDirectory) != ''"
			Include="%(ProjectReference.CopyToOutputDirectory)"></ProjectReferenceFiles>
	</ItemGroup>
	<Message Text="复制文件:@(ProjectReferenceFiles)" Importance="high"></Message>
	<Copy SourceFiles="@(ProjectReferenceFiles)" DestinationFolder="$(OutDir)" />
</Target>

<Target Name="AfterTargetsPublish" AfterTargets="Publish">
	<ItemGroup>
		<ProjectReferenceFiles
			Condition="%(ProjectReference.CopyToOutputDirectory) != ''"
			Include="%(ProjectReference.CopyToOutputDirectory)"></ProjectReferenceFiles>
	</ItemGroup>
	<Message Text="复制文件:@(ProjectReferenceFiles)" Importance="high"></Message>
	<Copy SourceFiles="@(ProjectReferenceFiles)" DestinationFolder="$(PublishDir)" />
</Target>

\src\Tsc.LocalLife.InsteadOrder.WebApi\Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . .
WORKDIR /src/src/Tsc.LocalLife.InsteadOrder.WebApi
ENV NUGET_XMLDOC_MODE none # 设置环境变量NUGET_XMLDOC_MODE
RUN dotnet publish Tsc.LocalLife.InsteadOrder.WebApi.csproj -c Release -o /app

FROM base AS final
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /usr/lib/ssl/openssl.cnf
WORKDIR /app
COPY --from=build /app .
RUN rm -rf appsettings.Development.json
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["dotnet", "Tsc.LocalLife.InsteadOrder.WebApi.dll"]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值