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