我在我的 Visual Studio 2008 项目中使用.Settings文件,它从PublicSettingsSingleFileGenerator自定义工具自动生成Settings.Designer.cs文件。
这很好用,但我还想在编译选项中启用“警告为错误”,以强制每个人保持 XML 注释为最新,但我不知道如何为自动中的所有元素添加注释- 生成的代码。
实际属性可以通过在设计视图中选择元素并在属性窗口中添加“描述”来添加注释。但是对于类声明或默认实例属性似乎没有办法做到这一点。
重现此问题的步骤如下
- 创建一个新项目
- 将设置文件添加到项目中
- 将设置文件的“访问修饰符”设置为公共
- 转到项目属性,构建部分
- 将“将警告视为错误”设置为全部
- 检查输出 XML 文档文件选项
- 构建解决方案
这是在 PublicSettingsSingleFileGenerator Settings.Designer.cs 文件中生成的代码
namespace SettingsTest {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
public sealed partial class Settings1 : global::System.Configuration.ApplicationSettingsBase {
private static Settings1 defaultInstance = ((Settings1)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings1())));
public static Settings1 Default {
get {
return defaultInstance;
}
}
}
}
不确定这个额外的信息是否应该成为问题部分的一部分,因为它在某种程度上指向答案
根据此链接,应用于该类的属性似乎是错误的。
" CompilerGenerateAttribute - 此属性仅供编译器使用,指示特定代码元素是编译器生成的。这绝不应在源代码中使用。"
" GeneratedCodeAttribute - 此属性供生成代码的自定义工具使用。它应仅应用于反复重新生成的代码,不应由预期用户修改的模板使用。也不应应用如果生成的类型是部分类,则在类型级别。在这种情况下,它应该只应用于包含在类型的生成部分中的各个成员。
更新
我已经在 Microsoft Connect 站点上提出了一个错误报告,并且会在我们获得更多信息时更新并接受答案http://connect.microsoft.com/VisualStudio/feedback/details/634692/publicsettingssinglefilegenerator-code-失败-当-治疗-警告-as-errors-is-set-to-all-and-xml-documentation-is-on