Если я правильно понимаю проблему, это на самом деле потому, что цель AssignProjectConfiguration неправильно устанавливает свойства конфигурации / платформы для этих проектов.
Если вы знаете, какими должны быть их конфигурации и платформы, вы всегда можете простовнедрить цель для запуска сразу после цели AssignProjectConfiguration и переопределить свойства SetConfiguration и SetPlatform для каждого элемента, представляющего неразрешенную (т.е. не являющуюся частью конфигурации решения) межпроектную ссылку.
По какой-то глупой причинеПредоставленная Microsoft цель хранит список неразрешенных ссылок на проекты в той же коллекции, что и разрешенные (но нигде больше), что дает вам 2 варианта:
- Просто установите свойства каждого проекта вручную (т.е.жесткое кодирование через динамический элемент ItemGroup внутри вашей введенной цели).
- Вызовите задачу AssignProjectConfiguration самостоятельно из вашей введенной цели, соберите неназначенногоd выводит, чтобы назначить им конфигурацию / платформу по умолчанию на ваш выбор.
В любом случае, получив список правильно настроенных ссылок на проекты, вы можете просто заменить неразрешенные элементы в группе элементов ProjectReferenceWithConfiguration.с их измененными вручную аналогами (используя другой динамический элемент ItemGroup с удалением, а затем с включением).
Имейте в виду, я бы не поступил так, как вы.Если вы хотите разделить ваш продукт на несколько решений, то я бы просто предложил каждому решению публиковать общие результаты в общую область подготовки и иметь сценарии .proj, чтобы связать их вместе.Я усвоил сложный способ, которым MSBuild в стиле командной строки и MSBuild в стиле VS не смешиваются (они сделали несколько странных компромиссов для обеспечения взаимодействия с системами проектов, не относящимися к MSBuild, из которых вся AssignProjectConfiguration-with-VS-provided-solution-config-XML - это один процесс).