2013-09-25 4 views
0

У меня есть решение, которое содержит два проекта: - Projecta есть ссылка NuGet на ServiceStack ormlite - projectB имеет ссылку на ProjectaMSBuild не копируя ссылку сборки

Когда я построить решение OutDir для Projecta содержит все сборка из пакетов nuget (4 сборки), тогда как проектB копирует только 2 из них. Очевидно, когда я начинаю, я получаю FileNotFoundException. Я уже пытался, но безуспешно, чтобы добавить private=true пометка

Я видел много ссылок на эту проблему, и теперь он очень смущен о том, что происходит здесь (кажется, что MSBuild не обрабатывает ссылки, как я думаю, единственное, что я знаю :().

Любая идея, что может быть сделано, чтобы иметь надежный процесс, чтобы построить мое решение?

ответ

2

строить будет только скопировать в папку вывода projectB в узлы, которые фактически используются Projecta и приводят к ссылкам в выходной сборке projectA, независимо от того, какие сборки ссылаются на проекты.

Вы можете открыть сборку проектаA с отражателем или ildasm и посмотреть, что из этих 4 сборок только 2 фактически используются и упоминаются.

Если сборки должны быть там во время выполнения проектаB, добавьте ссылку на пакет NuGet в projectB, а также убедитесь, что они скопированы. Этот пост показывает general-purpose solution, но я не пробовал.

+0

Да, я уже это сделал. Я стараюсь избегать этого маршрута, так как мое решение фактически содержит десятки проектов и равное количество проектов единичных тестов (они также нуждаются в том же методе, что и вы предлагаете). Спасибо за ответ и ссылку, я просто надеюсь, что MS отменит эту проблему, потому что в моем случае проблема возникает для многих dependecies (automapper, servicestack ormlite, servicestak interfaces, ...). – Dave

+0

I image projectA использует те не скопированные сборки, что @Dave говорит, что он получает «FileNotFoundException». – Artyom

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