У меня Visual Studio 2008 SP1, два проекта C ++ / CLI, скажем, proj1 и proj2.
proj2 зависит от proj1, но странным образом (см. ниже).
В Project Dependencies я указываю, что proj2 зависит от proj1.
Также ссылки на proj2 включают proj1.
Тогда я хочу, чтобы proj1 был другом proj2,
Итак, как написано на странице MSDN «Сборки друзей» , я пишу где-нибудь в proj2 этот код:
#using "proj1.dll" as_friend.
Компиляция говорит, что proj1.dll уже упоминался, и что я должен удалить ссылку на проект из настроек проекта proj2 (таким образом удаляя флаг / FU).
Вот ошибка (?):
Если я удалю ссылку на proj1 из proj2, но все же укажу в решении Project Dependencies, что proj2 зависит от proj1,
все компилируется нормально в VS2008. Но MSBUILD анализирует ссылки на проекты, создает новый временный проект для proj2,
ADDS /FU:proj1.dll и СОСТАВИТЬ ОТКАЗЫ!
Вопрос 1: есть ли способ отключить это поведение MSBuild?
Затем, если я удаляю зависимости в Project Dependencies, MSBuild строит нормально, но Visual Studio пытается скомпилировать proj1 и proj2 параллельно и завершается неудачно,
потому что proj2 намного меньше и компилируется первым ... Настройка параметра max параллельных сборок в Project и Solutions / Build and Run помогает,
но я должен сделать это на каждой машине разработчика, я не могу сохранить этот параметр в решении, это замедляет сборку и т. д ...
Вопрос 2: есть ли способ сделать «Зависимости проекта» условным вариантом? Я хочу включить VS2008 и MSBuild ...