Я работаю над решением по локализации устаревших приложений.Я написал надстройку для Visual studio с использованием EnvDte, которая автоматизирует процесс установки флага «Localizable» для каждой формы в решении на значение true, что является критически важным шагом для извлечения ресурсов в дизайнерах форм.Сейчас я пытаюсь разобраться с любым текстом, который устанавливается программно, текстом, который вызывает предупреждения Globalization (CA13 ##) .
designer.Visible = true;
var host = (IDesignerHost)designer.Object;
var provider = TypeDescriptor.GetProvider(host.RootComponent);
var typeDescriptor = provider.GetExtendedTypeDescriptor(host.RootComponent);
if (typeDescriptor == null)
continue;
var propCollection = typeDescriptor.GetProperties();
var propDesc = propCollection["Localizable"];
if (propDesc != null && host.RootComponent != null &&
(bool?)propDesc.GetValue(host.RootComponent) != true)
{
try
{
propDesc.SetValue(host.RootComponent, true);
}
catch (Exception ex)
{
// log the error
}
// save changes
}
Я смог запустить его вручнуюиз меню: Анализ -> Выполнить анализ кода -> При решении , чтобы получить список проблем, но я хотел бы автоматизировать этот шаг с помощью другой надстройки, которая запускает и извлекает результаты.
Существуют ли какие-либо ресурсы, указывающие на доступ к предупреждениям о сборке или результатам анализа кода?
Существуют ли решения, которые уже делают это, используя EnvDte или Roslyn?