PresentationCore.dll и WindowsBase.dll включены в Microsoft .NET Framework 3.0, а две версии каждой dll устанавливаются на диск:
До добавления ссылок на эти dll наше веб-приложение ASP.NET можно было скомпилировать для «любого процессора» и без проблем работать в 32-битном или 64-битном режиме. После добавления ссылки, скажем, на PresentationCore через стандартный диалог «Добавить ссылку» (Добавить ссылку -> .NET -> PresentationCore), веб-приложение не работает в 64-битном режиме со следующей ошибкой:
Не удалось загрузить файл или сборка PresentationCore или одна из ее зависимостей. Была сделана попытка загрузить программу с неверным форматом.
Очевидно, это связано с тем, что пул 64-битных приложений пытается загрузить 32-битную версию библиотеки PresentationCore, но безуспешно.
Меня это немного смущает ...
Мы всегда можем написать немного MSBuild xml, который будет автоматически менять местами ссылки во время сборки на основе разрядность целевой среды, но похоже, что это то, что нам не нужно делать для библиотек DLL .NET Framework. Что дает?
Спасибо!