C# xml注释是否在发布模式下保持不变?

C# xml注释是否在发布模式下保持不变?,c#,.net,xml-comments,C#,.net,Xml Comments,一方面说: XML文档注释不是元数据;它们不包括在报告中 已编译程序集 但另一方面,Intellisense在Visual Studio中为.net类等显示它们(例如,如果将鼠标悬停在Int32上) 为了避免误解:我指的是: /// <summary> /// These comments. /// </summary> void example() { //Not these. } // ///这些评论。 /// void示例() { //不是这些。 } 不

一方面说:

XML文档注释不是元数据;它们不包括在报告中 已编译程序集

但另一方面,Intellisense在Visual Studio中为.net类等显示它们(例如,如果将鼠标悬停在
Int32
上)

为了避免误解:我指的是:

/// <summary>
/// These comments.
/// </summary>
void example()
{
    //Not these.
}
//
///这些评论。
/// 
void示例()
{
//不是这些。
}

不,当您将代码编译为IL时,这些将被剥离。请将代码编译为DLL或exe,然后使用工具ILDasm将其打开。你会注意到你的评论没有包括在内。然后,您可以使用Reflector之类的工具反编译代码,再次看到您的注释消失了。ILDasm和Reflector通常是您应该熟悉的好工具。

XML文档文件与程序集的DLL是分开的。它们只是UTF8XML文件。如果它们恰好与它们记录的DLL位于同一文件夹中,则VisualStudio将拾取它们

编译时,生成过程将自动将XML文件复制到生成输出文件夹(如果存在)

XML文档的任何内容都不会放入任何DLL中


如果您查看框架DLL文件(例如在“C:\Program files(x86)\Reference Assembly\Microsoft\framework.NETFramework\v4.0”中),您将看到它们旁边有大量的“.xml”文件。

谢谢。那么,对于.net类,它们是如何存在的呢?如果您在framework文件夹中查找,则每个
.dll
都有一个
.xml
,用于表示info@V4Vendetta谢谢所以我的问题变成了“是否会用dll创建XML文件?”我看不到有人在创建XML文件。但我刚刚听说了这一点,所以我想确认一下。@ispiro我想在项目构建属性中,您可以选择生成文档xml@V4Vendetta完美的我在那里看到了。(你可以把这转化为一个答案。绝对值得投票。谢谢。)可能重复的谢谢。你是说.NETDLL的文件夹中有XML文件?好的。不在dll中。但是它会作为XML文件保存吗?我想你会回答我的第一个评论。是吗?@ispiro是的,我是。至于你的第二个问题,“它会持续下去”是什么意思?只有删除XML文件,它们才会消失。当然,如果您将所有DLL文件复制到一个新文件夹,而不复制XML文件,那么XML文件将不在新文件夹中(这是很明显的)。a)谢谢你的耐心。b) 我的意思是——我编译我的应用程序并使用VisualStudio(ClickOnce)发布它——会创建和发布XML吗?(我刚刚尝试过,但它似乎没有被创建。但我对这一点还不熟悉,所以我想确定一下。)