Вы не можете иметь более одного мастера csproj. Но поскольку нижняя разводка csproj выполняется с помощью msbuild, вы можете просто иметь несколько частичных csproj, которые импортируют друг друга. Файл решения будет отображать наиболее производные csproj.
project1.csproj
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
....
</Project>
project2.csproj
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="project1.csproj" />
...
</Project>
project.csproj - это основной проект, на который ссылается файл решения.
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="project2.csproj" />
...
</Project>
Суть в том, что с помощью функции msbuild Import вы можете получить частичные файлы csproj, каждый из которых будет содержать определения, которые будет использовать основной проект (в моем примере project.csproj).
Visual Studio покажет диалоговое окно Предупреждение безопасности для проекта , когда вы откроете измененное решение или файл проекта. Выберите опцию Загрузить проект обычно и нажмите OK . При повторном открытии решения позже предупреждение не будет отображаться, поскольку конфигурация Обычно загружать проект сохраняется в файле suo .