Мой код получает предупреждение CA1303
от Microsoft.Globalization
, «Не проходить литералы как локализованные параметры", , но мой код на самом деле не передает литерал:
private void MyForm_Load(object sender, EventArgs e)
{
UpdateTitle();
}
private void UpdateTitle()
{
Version version = Assembly.GetExecutingAssembly().GetName().Version;
CultureInfo culture = CultureInfo.CurrentUICulture;
this.Text = String.Format(culture, "{0} v{1}.{2} Alpha r{3}", this.Text, version.Major, version.Minor, version.Build);
}
Этот код устанавливает заголовок формы примерно так, каждый раз, когда она загружается:
MyFormNameAsSetInTheDesigner] v0.1 Alpha r123
(version.build
на самом деле содержит ревизию SVN, которая автоматически обновляется при каждой фиксации, я не использую ревизию
, потому что моя схема управления версиями использует только 3 числа, major.minor.revision
)
Но это вызывает вышеупомянутое предупреждение, потому что он думает, что я устанавливаю заголовок tex t из строкового литерала.На самом деле я установил Localizable = True
в дизайнере, чтобы строка извлекалась из таблицы ресурсов.
Я не хочу задавать заголовок формы статически, потому что (особенно на альфа- и бета-этапах) я хочу, чтобы он имел динамические номера версий.