Да. Вы можете использовать задачу импорта:
<Import Project="PathToMyIncludeFile\Include.proj" />
И да, вы можете создать командный файл для запуска msbuild. Синтаксис
msbuild <project> /t:target[;target] /p:propertyname=propertyvalue
Где цели определены в файле msbuild, а свойства - это любые свойства, определенные в файле. Если вы не укажете цель, будет выполнено заданное по умолчанию значение в элементе файла msbuild. Вот пара примеров:
Итак, чтобы запустить сборку с целями Clean и Compile:
msbuild myproject.proj /t:Clean;Compile
Или для запуска сборки с целью компиляции и конфигурацией выпуска:
msbuild myproject.proj /t:Compile /p:Configuration=Release
Или чтобы запустить сборку с целью по умолчанию и установить свойство версии:
msbuild myproject.proj /p:Version=2.0.0.1
Параметры командной строки имеют приоритет над значениями, определенными в файле. Таким образом, в приведенном выше примере, если у вас была определена версия в файле как:
<PropertyGroup>
<Version>1.0.0.0</Version>
<PropertyGroup>
Сборка будет работать с настроенной версией 2.0.0.1
Как обычно, проверьте MSDN для получения дополнительной информации.