2008-10-14 51 views
23

我有一个程序集,其中包含非常全面的基于XML的文档,它通过Sandcastle用于生成产品的帮助文件。当程序员显然使用程序集时,我们还使用输出XML文件在Visual Studio中提供正确的Intellisense。在Assembly中嵌入Intellisense Xml文档?

为了做到这一点,似乎我们都为用户提供程序集(“assembly.dll”)和文档(“assembly.xml”)。

是否有可能将文档嵌入到程序集中,因此我们只需提供单个程序集文件,Visual Studio就能够提取信息?也许嵌入作为资源或类似的东西?

回答

13

不幸的是,你需要提供两者,因为Visual Studio只知道查看Intellisense的XML文档。

+1

一个耻辱。等效文档嵌入到COM服务器(DLL)中。很难想象它会增加文件的大小。 – MarkJ 2012-09-20 10:19:47

1

我错过了什么吗?我总是照常评论(使用3个斜线或3个刻度线(vb)),使用内置的xml标记,当我使用程序集时,我得到intellisense - 我很少使用extrernal xml文件。

+2

您是否在代码完成时获得了Intellisense,或者您是否真的获得了您编写的文档?即VS可以自动生成方法列表及其参数等等,但除非我确定主机上也存在文档,否则我不会收到文档。 – ulrikj 2008-10-15 07:24:40

5

如果您搜索C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727,您会发现您在应用程序中引用的所有.net程序集都使用xml文件。如果xml文件存在,Visual Studio将只为程序集提供智能感知。例如,如果要关闭Visual Studio,然后删除System.Drawing.xml文件,然后重新打开VS,则不应该有该程序集的任何智能感知。然后,您需要关闭VS,将其复制回来,然后重新打开VS以使智能感知重新开始工作。

+0

实际上,如果您删除了XML文件,还是有_some_ Intellisense。您不会看到任何“///”注释,但您仍然可以获取方法签名和重载。据推测,这是通过反思完成的。 – 2011-03-31 20:20:32