C# 为什么对*.cs文件忽略生成操作:无?

C# 为什么对*.cs文件忽略生成操作:无?,c#,visual-studio-2010,C#,Visual Studio 2010,在一个项目中,我有一个坏文件,我想保留它。我知道,我可以使用Exclude from project,但这会在VS2010中隐藏该文件,在VS2008中,它仍然可见。但是,我单击了properties下的Build Action:None。当我编译时,项目会编译,但当我查看错误列表时,它仍然显示此文件的错误 报告的错误不应该排除已从生成中排除的文件的错误吗?即,标记为内容的文件永远不会生成。但当*.cs文件为内容时,错误列表仍显示此文件的错误。这不仅仅是一件麻烦事。在大型项目中,许多错误和警告来

在一个项目中,我有一个坏文件,我想保留它。我知道,我可以使用Exclude from project,但这会在VS2010中隐藏该文件,在VS2008中,它仍然可见。但是,我单击了properties下的Build Action:None。当我编译时,项目会编译,但当我查看错误列表时,它仍然显示此文件的错误


报告的错误不应该排除已从生成中排除的文件的错误吗?即,标记为内容的文件永远不会生成。但当*.cs文件为内容时,错误列表仍显示此文件的错误。这不仅仅是一件麻烦事。在大型项目中,许多错误和警告来自从未编译过的文件,掩盖了重要的错误。如何防止这种情况发生?

该文件实际上已从生成中排除,但未从IDE中产生错误列表1中的错误的后台编译中排除

最简单的方法是注释掉整个文件,按Ctrl+A选择所有内容,按Ctrl+K,C注释掉文件

另一种选择是使用条件编译。在源文件顶部插入一个未定义的预编译器常量:

#if DONTINCLUDE
...
//code goes here
...
#endif
当然,还有一种选择是重命名文件,使其具有不同的扩展名,例如.txt。这将使您失去所有与C相关的IDE特性,例如语法高亮显示


1当您将构建操作设置为Compile以外的其他操作时,您将实际看到错误列表包含的错误较少,因为我只能看到语法错误。啊,是的,我是这样想的。我知道并滥用了很多,Ctrl+k,C,但是当你想在项目中保持一个文件的完整性,并想将其从构建中排除,甚至:想将其作为一种资源,我希望能够在不篡改原始内容的情况下阻止后台编译的发生。问这个问题并不奇怪,是吗?顺便说一句,这似乎与2008年过于明显的CSS错误相似。这听起来像是两全其美,即突出显示加上由于您希望稍后解决的错误而不构建,或者不存在作为示例保留的错误。重命名功能类似于2008年的功能*。排除从项目中排除文件时获得的名称。嗯,我认为这只是一个缺少的特性,否则Build:None有什么用?无论如何,谢谢你这么想:哦,你删除了你的评论。。。实际上,您将看到错误列表包含的错误更少>>是的,确实如此。但当文件打开时不会。还是我现在在挑剔@阿贝尔:不,这是不正确的,只有在编辑器中打开排除的文件时,您才会看到错误。我不会说这是一个缺失的特性。这是IDE向您显示语法错误的一个特性。关闭该功能可能很少需要,因此产品中从未使用过。顺便说一句,我在答案中加入了注释。谢谢,我实际上使用了编译器常量,但仍然觉得它很讨厌,但最终切换到了一个有意义的/较少的扩展*。keep。但你是对的,这应该是一个几乎不需要的功能,只是当你想到它的时候,它本身的情况会引起你的注意。