0

Я пишу расширение Visual Studio, которое зависит от EntityFramework 5.0.0.0. Я включил EntityFramework в свой проект. Когда я устанавливаю свое расширение, DLL расширения добавляется в папку VS extensions, и с ним также появляется EntityFramework.dll.Не удается загрузить EntityFramework.dll 5.0.0.0 внутри расширения Visual Studio 2013

Однако, когда я бегу мое расширение в Visual Studio 2013 (обновление 5), он не может загрузить EntityFramework: System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

Глядя в Process Monitor, я увидел, что, когда я бегу мое расширение, VS2013 пытается загрузить EntityFramework с другого пути, который имеет его в другой версии - 4.2. Я бы ожидал, что VS2013 продолжит поиск EntityFramework и найдет его в папке моего расширения, как и для других DLL, включенных в мое расширение, но это не так.

В VS2015 VS действительно загружает EntityFramework 5.0.0.0, но делает это также из еще одного другого пути.

Почему VS2013 не продолжает поиск EntityFramework в папке моего расширения?

ответ

0

Необходимо указать атрибут ProvideCodeBase, чтобы указать, что ваши дополнительные сборки должны быть загружены. «Иногда» вам повезло, и он находит что-то еще, но это никогда не гарантирует работу. Вы можете увидеть несколько примеров того, что используется here.