我正在为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>
当我build the package with this command时:
nuget pack MyLibrary.nuspec
它会产生错误。如果我删除该行:
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
NuGet.exe成功创建了nupkg。我甚至可以解压缩包,并验证内容是否正确。我究竟做错了什么? xml文件应该进入不同的目标目录吗?
答案 0 :(得分:80)
问题是我没有为我正在使用的构建配置检查“生成Xml文档”。那个nuspec是正确的。
答案 1 :(得分:4)
在.NET Core / Standard中,您可以通过编辑项目XML文件来做到这一点,例如:
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
这会将文档以XML文件的形式输出到输出程序集旁边。