PowerTools Beta 3 не работает
Я пытался генерировать "представления" для повышения производительности моего приложения. Приложение Silverlight 4 связано со службами RIA к Серверу. Серверное приложение запущено с EF 4.1 + RIA Services. Я установил "EF Power Tools Beta 3 v0.7.0.0" и мог генерировать свои представления без проблем. Но вскоре я понял, что EF 4.1. не смог извлечь выгоду из предварительно скомпилированных представлений. EF >= 4.2 требовалось. Через NuGet я увидел обновление для RIA Services (RIAServices.EntityFramework.4.2.0), которое использовало EF 5. Я установил и все заработало, но когда я пытаюсь сгенерировать представления, я получаю исключение:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Я попытался переустановить PowerTools. Не повезло, я скачал исходный код для PowerTools и отладил исключение. Видимо PowerTools пытался и не мог найти старую версию EF. Свойство LoaderExceptions гласит:
{System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Я исследовал PublicKeyToken и подтвердил, что он такой же, как DLL EF 5 (EF 4.4 target=.NET 4), найденная в моей выходной карте bin. Но PowerTools ищет EF 4.1.. почему?
Мой файл web.config имеет это:
<sectionGroup name="system.serviceModel">
<section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" allowDefinition="MachineToApplication" requirePermission="false" />
</sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
а также:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" />
</dependentAssembly>
</assemblyBinding>
Я также протестировал изменение PublicKeyToken в Web.config только для того, чтобы подтвердить, что я получаю еще одну ошибку от PowerTools, поэтому PowerTools, похоже, анализирует мой Web.config.
1 ответ
Обновление: я создал новый веб-проект и добавил все файлы кода модели в виде ссылок. Те же строки подключения. Теперь я могу строить представления.. странно.. те же ссылки.
Когда я добавляю представления в свой оригинальный проект, сервисы RIA не запускаются. Убрал просмотры и они снова начали.