这个链接How do I create an XML Intellisense file for my DLL?解释了如何构建你的dll,以便包含一个包含所有文档头的XML文件,以便它们在那些IntelliSense弹出窗口中可用。
在我的公司,我们经常使用内部NuGet包源分发我们自己的dll。当我为包源创建NuGet包时,如何确保其他人从包源获取dll,IntelliSense会为它们显示文档标题?
答案 0 :(得分:15)
如果您将带有NuGet包的xml文件分发到与dll相同的文件夹中,则Visual Studio将找到这些xml文件并显示程序集的intellisense。
要解析intellisense xml文件,您需要将它们添加到.nuspec文件中,例如:
<files>
<file src="bin\IronPython.dll" target="lib\Net40" />
<file src="bin\IronPython.xml" target="lib\Net40" />
</files>
答案 1 :(得分:6)
tl; dr 文档文件必须为.xml
而不是.XML
我首先使用Build选项卡启用生产,然后在Output部分中检查XML Documentation File,从而获得XML文件。注意:由于某种原因,我不得不手动将扩展名从.XML更改为小写.xml。因人而异。这与您引用的问题How do I create an XML Intellisense file for my DLL?相同。
完成后,我在项目目录中创建了Nuspec文件。这是一个示例,您也可以使用nuget spec MyAssembly.dll
生成它 - 但请务必对其进行编辑并相应地设置值。
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>1.0.0</version>
<title>Title for your package</title>
<authors>Package Author</authors>
<owners>Package Owner</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A description of your library</description>
<releaseNotes>Release notes for this version.</releaseNotes>
<copyright>Copyright 2013</copyright>
<tags>tag1 tag2</tags>
</metadata>
</package>
一旦完成,我就用Nuget打包了。注意我必须指定平台,因为我使用的是64位操作系统,但我在x64项目中没有任何目标,只有AnyCPU
nuget pack MyAssembly.csproj -Prop Configuration=Release;Platform=AnyCPU -build
程序集及其相关文档自动包含在程序包中。此外,您在项目中使用的任何包都将添加到依赖项列表中。
有关详细信息,请参阅http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package。