Я использую файл .Settings в моем проекте Visual Studio 2008, который автоматически генерирует файл Settings.Designer.cs из пользовательского PublicSettingsSingleFileGenerator инструмент.
Это работает нормально, но я также хочу включить «Предупреждения как ошибки» в параметрах компиляции, чтобы заставить всех обновлять комментарии XML, но я не знаю, как добавить комментарии ко всемэлементов в автоматически сгенерированном коде.
К реальным свойствам можно добавить комментарии, выбрав элементы в режиме конструктора и добавив «Описание» в окне свойств.Но, кажется, нет способа сделать это для объявления класса или свойства экземпляра по умолчанию.
Шаги по воспроизведению этой проблемы следующие:
- Создание новогоproject
- Добавить файл настроек в проект
- Установить для «Модификатора доступа» файла настроек значение Public
- Перейти к свойствам проекта, раздел Build
- Установите для параметра «Рассматривать предупреждения как ошибки» значение «Все»
- Проверьте параметр файла «Выходная документация 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;
}
}
}
}
Не уверен, что эта дополнительная информация должна быть частью раздела вопроса, так как она указывает на ответ
Согласно этой ссылке атрибуты, примененные к классу, кажутся неправильными.
http://blogs.msdn.com/b/codeanalysis/archive/2007/04/27/correct-usage-of-the-compilergeneratedattribute-and-the-generatedcodeattribute.aspx
" CompilerGenerateAttribute - Этот атрибут предназначен только для использования компилятором ииндикаУбедитесь, что конкретный элемент кода генерируется компилятором.Это никогда не должно использоваться в исходном коде. "
" GeneratedCodeAttribute - Этот атрибут предназначен для использования пользовательскими инструментами, которые генерируют код.Его следует применять только к коду, который повторно генерируется снова и снова, и не должен использоваться шаблонами, которые пользователь должен изменить.Он также не должен применяться на уровне типа, если генерируемый тип является частичным классом.В этой ситуации его следует применять только к отдельным элементам, которые содержатся в сгенерированной части типа. "
Обновление
Я поднял ошибкусообщите об этом на сайте 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