Joh*_*son 93 c# nuget nuget-package
我正在为C#类库创建一个NuGet包,我想在库中包含生成的Xml文档.这是我的nuspec文件:
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
<id>MyLibrary</id>
<version>1.0.0.0</version>
<authors>John Nelson</authors>
<language>en-US</language>
<description>A C# class library</description>
</metadata>
<files>
<file src="..\..\build\MyLibrary.dll" target="lib\Net40" />
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
</files>
</package>
Run Code Online (Sandbox Code Playgroud)
当我使用此命令构建包时:
nuget pack MyLibrary.nuspec
Run Code Online (Sandbox Code Playgroud)
它会产生错误.如果我删除该行:
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
Run Code Online (Sandbox Code Playgroud)
NuGet.exe成功创建了nupkg.我甚至可以解压缩包,并验证内容是否正确.我究竟做错了什么?xml文件应该进入不同的目标目录吗?
Joh*_*son 91
问题是我没有检查"生成Xml文档"我正在使用的构建配置.那个nuspec是正确的.
byt*_*dev 24
在 .NET Core/Standard 中,您可以通过编辑项目 XML 文件来执行此操作,例如:
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
这会将文档输出为输出程序集旁边的 XML 文件。
编辑:
作为旁注,一旦您启用,GenerateDocumentationFile
您可能会因为没有添加完整的文档标签而收到很多关于您的公共方法的警告。如果您想禁用这些警告,只需添加PropertyGroup
:
<NoWarn>$(NoWarn);1591</NoWarn>
Run Code Online (Sandbox Code Playgroud)