Пропустить проект при создании решения с использованием msbuild 3.5

У меня есть решение с рядом библиотек + веб-сайт в папке.

Когда я использую msbuil против этого решения, он прекомпилирует веб-сайт в новое имя папки PrecompiledWeb. Я хочу пропустить это, просто собрать все библиотеки.

Как я могу это сделать?

2 ответа

Решение

Я бы настроил либо специальную цель, либо, возможно, другой файл msbuild.

Я использую один .msbuild файл и несколько разных пакетных файлов, таким образом, я могу создать определенные части моего приложения или всего этого, просто используя другой пакетный файл.

В вашем .msbuild файл, у вас может быть две цели, одна для полной сборки, а другая только для библиотек:

<Target Name="FullBuild">
  <MSBuild Projects="YourSolution.sln" />
</Target>

<Target Name="LibBuild">
  <MSBuild Projects="YourLibProject1.csproj" />
  <MSBuild Projects="YourLibProject2.csproj" />
  <MSBuild Projects="YourLibProject3.csproj" />
</Target>

Таким образом, вы можете вызвать msbuild либо с FullBuild цель, которая будет строить все ваше решение, или с LibBuild который будет строить конкретные проекты, которые вы хотите.

Пакетные файлы могут выглядеть так:

msbuild.exe /t:LibBuild

msbuild.exe /t:FullBuild

Вы должны быть в состоянии сделать это, создав новую конфигурацию (LibOnly) и в диспетчере конфигурации Visual Studio проверяйте только те проекты, которые хотите построить. Затем из командной строки:

msbuild.exe YourSolution.sln /p:Configuration=LibOnly

Как упоминалось в предыдущем комментарии, вы всегда можете создать свой собственный файл MSBuild, чтобы указать, какие проекты создавать. Я думаю, что это хороший подход, я не люблю создавать файлы решений.

Другие вопросы по тегам