На самом деле есть две основные причины, по которым тип проекта по умолчанию для приложений WPF - x86.
- Отладка Intellitrace работает только с x86, и это выглядело бы очень плохо, если бы шаблоны проектов по умолчанию не работали с одной из их основных функций.
- Многие разработчики до сих пор не знали о том, что их exe-файлы AnyCPU будут работать как x64 на 64-битных машинах, и были удивлены, обнаружив, что 32-битные библиотеки DLL, на которые они опирались, не существуют в 64-битных разновидностях, таких как драйверы OLEDB, некоторые родные DLL и т. Д.
Что касается проблем времени запуска, с которыми вы сталкиваетесь, то это похоже на проблему с NGEN. Поскольку для процессов x64 и x86 существуют разные кэши NGEN, может случиться так, что 64-битный кэш NGEN либо необходимо перестроить, либо обновить. Попробуйте запустить следующее из командной строки с повышенными привилегиями:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
NGEN update
Это команда для перекомпоновки собственных образов для сборок, которые уже помечены для NGEN. Также, вероятно, вам не поможет NGEN ваше приложение, если сборки не находятся в GAC, поэтому я бы не стал пытаться это сделать. Но сборки фреймворка, сборки инструментария и т. Д. Должны быть NGEN'd.
(Кстати, я получил несколько ошибок, когда выполнил указанную выше команду о сборках, которые не могли быть загружены. В основном это были сборки SQL и Visual Studio.)