Я заметил, что, если я создаю свое приложение WPF для Какого-либо CPU/x64, оно берет НАМНОГО дольше, чтобы запуститься (на порядке приблизительно 20 секунд) или загрузить новые средства управления, чем оно делает, если запущено на x86 (в выпуске и режимах отладки, внутри или снаружи VS). Это происходит даже с самыми простыми приложениями WPF. Проблема обсуждена в этом потоке MSDN, но никакой ответ не был предоставлен там. Это происходит только с.NET 4.0 - в 3,5 SP1, x64 был так же быстр как x86. Интересно, Microsoft, кажется, знает об этой проблеме, так как значение по умолчанию для нового проекта WPF в VS2010 является x86.
Действительно ли это - реальная ошибка, или я просто делаю ее неправильно?
Править: Возможно связанный с этим: Медленное время установки Привязки данных в.NET C# 4.0. Я использую привязку данных в большой степени.
На самом деле есть 2 основные причины, по которым тип проекта по умолчанию для приложений WPF - x86.
Что касается проблем во время запуска, с которыми вы сталкиваетесь, это почти похоже на проблему с NGEN.Поскольку существуют разные кеши NGEN для процессов x64 и x86, может оказаться, что 64-битный кеш NGEN необходимо либо перестроить, либо обновить. Попробуйте выполнить следующую команду из командной строки с повышенными привилегиями:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
NGEN update
Это команда для повторной сборки образов в машинном коде для сборок, которые уже были помечены для NGEN. Это также, вероятно, не принесет вам никакой пользы для вашего приложения NGEN, если сборки также не находятся в GAC, поэтому я бы не стал пытаться это сделать. Но сборки каркаса, сборки инструментальных средств и т. Д. Должны быть NGEN'ом.
(Между прочим, я получал несколько ошибок, когда запускал указанную выше команду о сборках, которые не могли быть загружены. В основном это были сборки SQL и Visual Studio.)