"Не удалось загрузить файл или сборку" PresentationUI.Aero2 ' или одна из его зависимостей."Почему нет?

в моем приложении WPF я получаю следующее исключение при запуске:

A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll

Additional information: Could not load file or assembly 
'PresentationUI.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 
or one of its dependencies. 

EDIT: используя журнал fusion, я получаю немного более ценную информацию, чем стек вызовов:

LOG: DisplayName = PresentationUI.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
 (Fully-specified)
LOG: Appbase = file:///[...]/bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = EngideskLauncher.vshost.exe
Calling assembly : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: [...]binDebugEngideskLauncher.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config.
LOG: Post-policy reference: PresentationUI.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///[...]/bin/Debug/PresentationUI.Aero2.DLL.
LOG: Attempting download of new URL file:///file:///[...]/bin/Debug/PresentationUI.Aero2/PresentationUI.Aero2.DLL.
LOG: Attempting download of new URL file:///file:///[...]/bin/Debug/PresentationUI.Aero2.EXE.
LOG: Attempting download of new URL file:///file:///[...]/bin/Debug/PresentationUI.Aero2/PresentationUI.Aero2.EXE.
LOG: All probing URLs attempted and failed.

что я нахожу странным, так это то, что вызывающая сборка PresentationFramework, который является сборкой .NET framework, очевидно. Сборка .NET Framework не будет вызывать сборку, которая не является сборкой .NET framework. В любом случае, я не могу найти PresentationUI.Aero2.DLL нигде и даже не Google, кажется, знаете что-нибудь об этом??

какие идеи?

дополнительная информация:

  • .NET Framework 4.0
  • Windows 8.1

2 ответов


Я получал ту же ошибку и, наконец, понял, что она просто останавливается в IDE, потому что у меня были включены исключения первого шанса, исключение на самом деле не имеет значения, и вы можете игнорировать или продолжать мимо него.


Если вам интересно, это (доброкачественная) ошибка в WPF. Исключение-первый шанс, и его можно игнорировать.

WPF забыл добавить Aero2.NormalColor.xaml до PresentationUI.dll. Если вы проверяете PresentationUI.dll С вашим любимым отражателем / декомпилятором вы найдете всевозможные темы, такие как Aero.NormalColor.baml, etc. но нет!--0-->. Это заставляет WPF попытаться увидеть, существует ли внешняя сборка:

это пытается загрузить Aero2.NormalColor.baml С PresentationUI.dll и возвращает null: http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/SystemResources.cs,773

это попробовать внешней сборке: http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/SystemResources.cs,554

и это вызывает реальное исключение: http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/SystemResources.cs,706

это исключение обычно наблюдается при использовании FlowDocument или FlowDocumentScrollViewer.