Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / После компиляции проекта, в BIN не попали сборки. / 8 сообщений из 8, страница 1 из 1
20.03.2015, 14:29
    #38911140
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
Привет.
Подскажите пожалуйста почему так, и как можно решить данную проблемку.

Использую VS 2013.
Используется Entity Framework 6.
Приложение разбито на 3 слоя: сам сервер, слой данных EF, БД.
Все хранится в одном солюшине (сервер, клиент и слой данных).

В итоге, при компиляции в папку BIN попадает EntityFramework.dll но не попадает EntityFramework.SqlServer.dll !

В Configuration Manager для всех проектов включена галка "Build". Галки "Deploy" нет ни у одного проекта.

В чем может быть дело ?
...
Рейтинг: 0 / 0
20.03.2015, 14:33
    #38911146
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
CopyLocal = true у ссылки?
...
Рейтинг: 0 / 0
20.03.2015, 15:43
    #38911242
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
PallarisCopyLocal = true у ссылки?

Да. Странно.

Пока придется заниматься копированием вручную, но надеюсь смогу найти решение.
...
Рейтинг: 0 / 0
20.03.2015, 15:57
    #38911268
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
Нашел решение.

http://stackoverflow.com/questions/14695163/cant-find-system-data-entity-sqlserver-sqlproviderservices-entityframework-sql

Добавил в сборку, где у меня находится слой данных:
Код: c#
1.
Type _Hack = typeof(System.Data.Entity.SqlServer.SqlProviderServices)



Хак сработал.

Вопрос такой . Не должна ли работать рекурсия, при сборке проекта в VS ?

Моя сборка, со слоем данных, знает о том, что ей нужна библиотека EntityFramework.SqlServer.dll - и в ее папке Bin эта библиотека есть. Ок.
Но вот главная сборка, не знает об этом (странно, что она знает EntityFramework, но не знает про EntityFramework.SqlServer.
Почему VS не использует рекурсию ? Она уже смогла вычислить, что сборка слоя данных использует некую либу. Почему она не использует эту информацию, при компилировании другой сборки.

Может это баг.
...
Рейтинг: 0 / 0
20.03.2015, 16:11
    #38911289
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
ProBiotekДобавил в сборку, где у меня находится слой данных. В главную сборку добавил, а не туда где слой данных - там и так не было проблем
...
Рейтинг: 0 / 0
20.03.2015, 18:20
    #38911486
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
ProBiotekProBiotekДобавил в сборку, где у меня находится слой данных. В главную сборку добавил, а не туда где слой данных - там и так не было проблем


да, есть такая чудная фигня со длл.
...
Рейтинг: 0 / 0
20.03.2015, 19:02
    #38911513
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
ProBiotek Вопрос такой . Не должна ли работать рекурсия, при сборке проекта в VS ?
Рекурсия проектов друг на друга запрещена при сборке солюшена.

А так есть ощущение что-то явно напутано с ссылками в солюшене. Все должно взлетать без проблем.
...
Рейтинг: 0 / 0
21.03.2015, 21:52
    #38912128
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
После компиляции проекта, в BIN не попали сборки.
ProBiotek Вопрос такой . Не должна ли работать рекурсия, при сборке проекта в VS ?

Моя сборка, со слоем данных, знает о том, что ей нужна библиотека EntityFramework.SqlServer.dll - и в ее папке Bin эта библиотека есть. Ок.
Но вот главная сборка, не знает об этом (странно, что она знает EntityFramework, но не знает про EntityFramework.SqlServer.
Почему VS не использует рекурсию ? Она уже смогла вычислить, что сборка слоя данных использует некую либу. Почему она не использует эту информацию, при компилировании другой сборки.

Может это баг.
Это не баг. В output каталог копируются зависимости проекта которых нет в GAC и зависимости зависимостей (которых тоже нет в GAC ) на основе метаданных сборки. Сборка EntityFramework не ссылается на EntityFramework.SqlServer. Судя по всему она грузится на этапе исполнения после чтения конфигурации. Поэтому VS не может узнать что её нужно копировать.

Вместо хака с typeof я бы сделал post-build event чтобы более явно зафиксировать факт зависимости от сборки EntityFramework.SqlServer.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / После компиляции проекта, в BIN не попали сборки. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]