XML 文档位于包中,但从未复制到输出目录

问题描述 投票:0回答:1

生成的包确实包含 DLL 文件旁边的 XML 文件,但是,当使用其他项目中的包时,文档永远不会复制到输出目录。

以下是有关如何生成包的相关内容:

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
    <GenerateDocumentationFile>True</GenerateDocumentationFile>
    ...
</PropertyGroup>

尝试了以下问题中的建议答案,但没有成功:

还尝试清除包缓存并重新启动 Visual Studio,但这没有任何效果。

问题:

如何将 XML 文档复制到 .NET 6 包的输出目录?

c# nuget .net-6.0 nuget-package xml-documentation
1个回答
0
投票

我在类似的问题中看到了这个解决方案或其变体。它对我使用 .Net 8 有用。

将以下代码添加到您的

csproj
文件

<Target Name="_ResolveCopyLocalNuGetPackageXmls" AfterTargets="ResolveReferences">
  <ItemGroup>
    <ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')" Condition="Exists('%(RootDir)%(Directory)%(Filename).xml')" />
  </ItemGroup>
</Target>

请注意,它将复制所有相应的 xml 文件(如果存在)。如果你不想要这个,你可能不得不尝试这个条件。

另请注意,您可能还必须将其添加到某些测试项目文件中。就我而言,我正在使用 swagger 的文档标头,并且所有集成测试都失败了,因为我需要的 xml 文件不在测试项目的 bin 文件夹中

© www.soinside.com 2019 - 2024. All rights reserved.