如何在 csproj 构建输出中包含来自 Nuget 包的 XML 文档
How to include XML Documentation from Nuget Package in csproj build output
我有一个包含 XML 文档文件的 nuget 包。
packages/MyPackage.1.0.0/lib/net472/MyPackage.xml
然而,当我构建我的项目时,我想在输出中包含这个 xml 文件。
所以当我:
dotnet MyProj.csproj -c Release
我想得到:
> ls bin/Release/net472
MyProj.dll
MyPackage.dll
MyPackage.xml
然而它从来没有出现过。我怎样才能得到它?
I find one solution:
Please find it at https://snede.net/add-nuget-package-xml-documentation-to-swagger/?unapproved=168&moderation-hash=14dbe7e7ca3d8affb6ace2bfdb7ff581
这实际上是将文件从nuget包复制到out目录或publish目录的问题。
只需修改 csproj 文件即可在 运行 构建或发布后从包的路径复制文件。
在此发帖。
如果您想从所有包中复制 xml,这是比 Snede 更好的方法,因为它可以正常工作而无需在每个包的路径上指定 .net 版本。
<Project>
<!-- ... -->
<ItemGroup>
<PackageReference Include="Example.SomePkg" Version="1.0.0" />
</ItemGroup>
<!-- ... -->
<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />
<!-- Add this -->
<Target Name="_ResolveCopyLocalNuGetPkgXmls" AfterTargets="ResolveReferences">
<ItemGroup><!-- Copy XML files from all PackageReferences to output dir -->
<ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')"
Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)'!='' and Exists('%(RootDir)%(Directory)%(Filename).xml')" />
</ItemGroup>
</Target>
</Project>
我有一个包含 XML 文档文件的 nuget 包。
packages/MyPackage.1.0.0/lib/net472/MyPackage.xml
然而,当我构建我的项目时,我想在输出中包含这个 xml 文件。
所以当我:
dotnet MyProj.csproj -c Release
我想得到:
> ls bin/Release/net472
MyProj.dll
MyPackage.dll
MyPackage.xml
然而它从来没有出现过。我怎样才能得到它?
I find one solution: Please find it at https://snede.net/add-nuget-package-xml-documentation-to-swagger/?unapproved=168&moderation-hash=14dbe7e7ca3d8affb6ace2bfdb7ff581
这实际上是将文件从nuget包复制到out目录或publish目录的问题。
只需修改 csproj 文件即可在 运行 构建或发布后从包的路径复制文件。
在此发帖
如果您想从所有包中复制 xml,这是比 Snede 更好的方法,因为它可以正常工作而无需在每个包的路径上指定 .net 版本。
<Project>
<!-- ... -->
<ItemGroup>
<PackageReference Include="Example.SomePkg" Version="1.0.0" />
</ItemGroup>
<!-- ... -->
<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />
<!-- Add this -->
<Target Name="_ResolveCopyLocalNuGetPkgXmls" AfterTargets="ResolveReferences">
<ItemGroup><!-- Copy XML files from all PackageReferences to output dir -->
<ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')"
Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)'!='' and Exists('%(RootDir)%(Directory)%(Filename).xml')" />
</ItemGroup>
</Target>
</Project>