По этому вопросу было много ответов, только ничего не подходит, поскольку склеивание файла лишает смысла всю программу, и я пишу в файл настройки, меняющие поведение приложения. .NET Framework 4.5.2.
В приложение должна входить эта настройка:
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>
Нашел одно решение, но оно довольно "грязное", смотрите сами использовать или нет.
Так как AppContext и сами переключатели появились только в версии 4.6, то 4.5.2 и меньше просто ни чего о них не знают и компилятор не позволяет использовать класс AppContext, так как приложение должно уметь запускаться на целевой версии фреймворка. Через настройки AppConfig это работает, т.к. его читает уже реальная среда исполнения, которая знает что и как с ними нужно делать.
Чтобы обойти ограничение 4.5.2 можно воспользоваться записью в реестр, но сделать запись в реестре нужно до активации формы, в методе main, иначе опция будет проигнорирована. Получится что-то такое:
static class Program
{
[STAThread]
static void Main()
{
//создаем ключ и нужные значения при запуске
var HKLM = Registry.LocalMachine;
var sw = HKLM.CreateSubKey(@"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\AppContext");
sw.SetValue("Switch.UseLegacyAccessibilityFeatures", "false");
//активируем оконную часть приложения
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
//удаляем ключ при завершении, чтобы не мусорить в системе,
//может быть лучше вынести в событие FormClosed
HKLM.DeleteSubKey(@"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\AppContext");
}
}
Важно! Запись в данную ветку реестра требует повышения привилегий до уровня администратора системы и повлияет на все .NET приложения.
Ключ реестра указан для Win10x64, конфигурация сборки AnyCPU. Для других версий ОС
и конфигурации сборки может потребоваться корректировка, например такая @"SOFTWARE\Microsoft\.NETFramework\AppContext". Но с этим я уже не экспериментировал.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей