生成的包确实包含 DLL 文件旁边的 XML 文件,但是,当使用其他项目中的包时,文档永远不会复制到输出目录。
以下是有关如何生成包的相关内容:
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
...
</PropertyGroup>
尝试了以下问题中的建议答案,但没有成功:
还尝试清除包缓存并重新启动 Visual Studio,但这没有任何效果。
问题:
如何将 XML 文档复制到 .NET 6 包的输出目录?
我在类似的问题中看到了这个解决方案或其变体。它对我使用 .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 文件夹中