Этим утром я столкнулся с той же проблемой (не удалось найти порядковый номер 345 ...) ...
Я пробовал приложение на 3 разных ПК с Win7 64bit; но только в одном из них бросает исключение. Я обнаружил, что проблема была в использовании библиотеки comctl32.dll (которая отличалась от моей).
Вы можете выполнить этот фрагмент кода, чтобы проверить, какую версию библиотеки вы используете:
foreach (ProcessModule module in System.Diagnostics.Process.GetCurrentProcess().Modules)
if (module.ModuleName.ToLower() == "comctl32.dll")
MessageBox.Show(module.FileVersionInfo.ToString());
Затем добавьте манифест и заставьте приложение использовать определенную версию библиотеки:
[Проект] -> Добавить новый элемент -> Манифест приложения
И отредактируйте его, добавив следующую часть зависимостей.
Я надеюсь, что это работает для вас ...
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
…
…
…
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</asmv1:assembly>