代码之家  ›  专栏  ›  技术社区  ›  Benjol

框架goto定义显示注释,这些注释是从XML注释生成的吗?

  •  1
  • Benjol  · 技术社区  · 16 年前

    我最近有点惊讶地发现,我精心编制的XML注释并没有以IntelliSense的形式出现在我的同事面前。一直将关联的程序集与项目引用一起使用之后,我还没有意识到必须导出.xml文档才能访问这些信息。

    这让我想知道.NET框架IntelliSense是如何工作的。如果我理解正确,.xml文件必须隐藏在一个特殊的文件夹中?

    但我的主要问题是关于“goto definition”(goto definition)——如果您在.NET框架程序集上进行定义,您将获得从元数据生成的信息——同时还提供大量有用的注释——这些信息是从XML注释神奇地生成的,还是有人必须编写一个macro+,以便仅为构建而转换它们?换一种说法:我如何为我的程序集获得这种效果?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Scott Dorman    16 年前

    您的项目是否配置为生成XML文档?仅仅因为您将注释添加到源代码中,编译器将不会生成.xml文件,除非有人告诉它。

    在“项目属性”页中,转到“构建”选项卡并查看“输出”部分。您应该看到一个名为“XML文档文件”的复选框条目。如果该复选框后面的文本框为空,则不会生成XML文档文件。

    一旦生成了XML文档文件,就应该在IntelliSense工具提示中看到注释。如果将对其他项目的引用作为项目引用,则应自动进行。如果包含对程序集的引用,则需要确保XML文件与引用的程序集位于同一位置。(生成时,应分别为bin/debug或bin/release文件夹中包含这些文件的所有程序集获取XML文件。)

    对于.NET框架程序集本身,相应的XML文档文件作为框架的一部分安装。对于.NET 2.0、3.0或3.5,文档文件位于 C:\Windows\Microsoft.NET\Framework\v2.0.50727\en (假设框架的默认安装)。这些文件由IntelliSense工具提示和Visual Studio中的“转到定义”功能使用,以显示此信息。没有进行任何特殊处理,也没有运行宏来实现这一点。Visual Studio最可能使用的唯一信息是组合注册表项来确定文档文件的正确路径。

    虽然您可能可以在同一文件夹中找到自己程序集的XML文档文件,但我建议不要这样做,因为这样会污染框架安装中的非框架相关文件。