我在Visual Studio 2008项目中使用 .Settings 文件,该文件从 PublicSettingsSingleFileGenerator自动生成 Settings.Designer.cs 文件自定义工具。
这很好用,但我也想在编译选项中启用“Warnings as Error”,强制每个人都保持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 - 此属性供生成代码的自定义工具使用。它应仅应用于反复重新生成的代码,不应由用户的模板使用如果生成的类型是部分类,则应该在类型级别应用它。在这种情况下,它应该只应用于生成的类型部分中包含的各个成员。“< / p>
更新
我在Microsoft Connect网站上针对此提出了错误报告,并会更新,并在我们获取更多信息时接受答案http://connect.microsoft.com/VisualStudio/feedback/details/634692/publicsettingssinglefilegenerator-code-fails-when-treat-warnings-as-errors-is-set-to-all-and-xml-documentation-is-on
答案 0 :(得分:2)
没有好办法,你不能在自动生成的文件中注入#pragma warning disable。也是Winforms设计器文件btw的问题。项目+属性,构建选项卡,抑制警告= 1591.但是,这将禁用诊断也可能需要打开它。 #pragma警告还原无法解决此问题。
答案 1 :(得分:1)
不幸的是,这里存在相互矛盾的问题\设置:
这样做的结果是您将警告转换为无法修复的编译器错误。您无法可靠地手动向设置类添加注释,因为它们将在下次重新生成时丢失。
考虑将您的设置放在单独的项目中,并关闭该项目的XML文档。
答案 2 :(得分:0)
设置是部分类:创建第二个空白部分并对其进行评论。
答案 3 :(得分:0)
请参阅Documenting (XML) Application Settings in Visual Studio 2010
每个设置都有一个描述属性,这将在生成的代码中创建XML注释。在VS2010中测试工作。