2013-02-08 3 views
4

Я разрабатываю приложение для Windows Phone. Это приложение использует фоновый агент (запланированное задание) для обновления информации о плитках, прикрепленных к стартовому экрану.Почему фоновый агент загружает избыточные сборки?

У меня есть 4 проекта, которые производят 4 сборки:

  • MyApp - Главный проект с логикой UI
  • MyApp.Core - Основная логика приложения
  • MyApp.Core.Agent - урезанная версия MyApp.Core для фонового агента
  • MyApp.Agent - фоновый агент

Это является частью журнала агента, который совместно Список ntains сборок загруженных агентом:

Zlib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 
MyApp.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
MyApp.Core.Agent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
MyApp.Agent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
System.Runtime.Serialization, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC 
Microsoft.Phone.Interop, Version=7.0.0.0, Culture=neutral, PublicKeyToken=24EEC0D8C86CDA1E 
Microsoft.Phone, Version=7.0.0.0, Culture=neutral, PublicKeyToken=24EEC0D8C86CDA1E 
System.Core, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC 
System.Xml, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC 
System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7CEC85D7BEA7798E 
System, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC 
System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7CEC85D7BEA7798E 
System.Windows.RuntimeHost, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7CEC85D7BEA7798E 
mscorlib, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC 

MyApp.Agent имеет ссылки только на MyApp.Core.Agent, который не имеет никаких ссылок на другие проекты. Но, как вы видите, MyApp и MyApp.Core также загружаются при запуске фонового агента. Почему это происходит? Я не понимаю. Сборки MyApp и MyApp.Core не делают ничего, кроме сокращения ценного пространства памяти.

+0

Привет, Алекс, вряд ли кто-нибудь сможет ответить на этот вопрос за пределами Microsoft. Я мог бы предложить спекуляции, но это было бы бесполезно. Является ли загрузка этих сборок причиной каких-либо проблем? –

+0

@GaryJohnson Я был вынужден отказаться от использования фонового агента в WP7-версии моего приложения (на WP8 все в порядке). Потребление памяти превысило 6 Мбит. И это превышение было невелико (около 0,5-1 Мб). Поэтому я думал, что отключение загрузки избыточных сборок может решить проблему. – Alex

ответ

0

Основная причина, по которой это происходит, - включить рисование из Фонового агента (по сути, эта DLL загружается, поскольку она имеет все необходимые компоненты для поддержки визуального дерева). Это не обязательно отличная причина, так как не все агенты визуализируются в фоновом режиме, но для тех, кто этого не делает, это очень мало, так как фреймворк только считывает небольшое количество DLL при запуске.

Смежные вопросы