Копирование в $(OutputPath) зависимостей
От: Qbit86 Кипр
Дата: 26.09.11 07:40
Оценка:
Доброе утро!

Возникла проблема с копированием транзитивных зависимостей в выходную директорию при сборке посредством MSBuild.

Предположим, есть проект Core.csproj, который ссылается на библиотеку ThirdParty.dll;
есть проект Api.csproj, который ссылается на Core.csproj и не ссылается прямо на ThirdParty.dll;
есть проект Application.csproj, который ссылается на Api.csproj и не ссылается прямо на Core.csproj и ThirdParty.dll:
ThirdParty.dll ← Core.csproj ← Api.csproj ← Application.csproj

Для первых двух проектов выходной папкой установлена «$(SolutionDir)Bin\Common\$(Configuration)-$(Platform)\». Для последнего проекта установлена отдельная папка «$(SolutionDir)Bin\Application\$(Configuration)-$(Platform)\».

Ожидаемое поведение сборки: в выходную папку Application скопируются Application.exe, его явная зависимость Api.dll, неявные зависимости Core.dll и ThirdParty.dll.

Для тривиальных проектов всё происходит согласно ожиданиям. Но в каких-то более сложных случаях что-то нарушается, и в выходную директорию Application не копируются зависимости второго порядка. С чем это может быть связано, есть ли какие-то общие рекомендации, или это проблемы конкретных скриптов сборки?
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.