gpt4 book ai didi

c# - Xml 文档未打包在类库中

转载 作者:行者123 更新时间:2023-12-05 04:07:32 25 4
gpt4 key购买 nike

我有两个项目,MyModels(包含类模型)和 MyExampleXML 文件是在 MyModels 项目中创建的,没问题。

现在在 MyExample 项目中,我通过 nuget 安装来引用 MyModels,但是如何在安装 nuget 包时将 XML 文档包含在包中? (它总是丢失)

最佳答案

Xml documentation not packed in class library

如果您在不是“基于 SDK”的普通 .csproj 类型项目中,您可以使用 <files> 直接包含 XML 文档以包含在包中。 .nuspec 中的节点文件,它位于 <metadata> 之后标签:

  <files>
<file src="bin\Debug\MyModels.dll" target="lib\Net45" />
<file src="bin\Debug\MyModels.xml" target="lib\Net45" />
</files>

以下是我的.nuspec :

<?xml version="1.0"?>
<package >
<metadata>
<id>MyModels</id>
<version>1.0.0</version>
<authors>Tester</authors>
<owners>Tester</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2018</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
<files>
<file src="bin\Debug\MyModels.dll" target="lib\Net45" />
<file src="bin\Debug\MyModels.xml" target="lib\Net45" />
</files>
</package>

然后 build the package with this command :

nuget pack MyModels.nuspec

NuGet.exe 成功创建了 nupkg:

enter image description here

如果您正在使用新的 .csproj 类型项目(基于 VS2017 SDK),您可以设置 GenerateDocumentationFile进入您的 csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>

</Project>

使用选项 GenerateDocumentationFile , MSBuild 将在 nuget 包中包含所有生成文件。

此外,如果你想把XML文档放到MyExample的项目中,您可以将目标更改为内容:

  <files>
<file src="bin\Debug\MyModels.dll" target="lib\Net45" />
<file src="bin\Debug\MyModels.xml" target="Content\MyModels.xml" />
</files>

希望这对您有所帮助。

评论更新:

I am using .NET Core 2, is it the same?

是的,您只需要更新 .nuspec 中的 src 和 target文件:

  <files>
<file src="bin\Debug\netcoreapp2.0\MyModels.dll" target="lib\netcoreapp2.0" />
<file src="bin\Debug\netcoreapp2.0\MyModels.xml" target="lib\netcoreapp2.0" />
</files>

或者你可以直接使用新的.csproj类型项目(基于 VS2017 SDK),设置 GenerateDocumentationFile进入.csproj文件,然后选中项目属性的“包”选项卡上的“生成时生成 NuGet 包”复选框:

enter image description here

构建后,在输出文件夹生成的nuget包:

enter image description here

注意:如果要将XML文档添加到MyExample的项目中,应该使用内容文件:

https://learn.microsoft.com/en-us/nuget/reference/nuspec#including-assembly-files

希望这对您有所帮助。

关于c# - Xml 文档未打包在类库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com