Подтвердить что ты не робот

Лучшие практики, если ваша сборка слишком длится в Visual Studio

У меня есть решение с умеренным размером в Visual Studio, которое занимает около 5 минут для создания (это займет так много времени из-за FxCop и других шагов пост-сборки). Моя проблема заключается в том, что Visual Studio перестает отвечать при создании. Вы не можете продолжать работу, поскольку VS почти висит. Я попытался использовать два экземпляра VS, просто используя один для сборки, но время от времени он терпит крах.

Мой вопрос: как не тратить время на визуальную студию, строящую ваш проект большой/умеренный. Есть ли какие-либо рекомендации для этого?

4b9b3361

Ответ 2

Два отличных совета MSBuild, которые я только что узнал вчера...

Вы можете запускать задачи параллельно с помощью переключателя /m: n, где n - количество используемых процессоров. Все, что вам нужно сделать, - установить BuildInParallel в своей задаче MSBuild.

Другой трюк заключается в том, что если у вас есть несколько < exec/ > задачи для запуска вы можете запустить их параллельно, вызывая < exec command = "sleep 10 | sleep 10 | sleep 20" / > используя символ трубы между каждой командой. Более практичный пример:

<CreateItem Include="server1;server2;server3;server2">
  <Output ItemName="IISServer" TaskParameter="Include"/>
</CreateItem>
<CreateProperty Value="@(IISServer->'iisreset.exe /start %(Identity)', '|')">
  <Output TaskParameter="Value" PropertyName="IISServerStartAll" />
</CreateProperty>
<exec command="$(IISServerStartAll)" />

Ответ 3

  • Вам, конечно, не нужно запускать статический анализ кода каждый раз, когда вы постройте свое решение.
  • Сократите количество ваших проектов на слияние некоторых также может помочь.

Какие еще задачи по построению почты вы создали?

Ответ 4

Используйте Incredibuild, если у вас есть несколько компьютеров или настройте эту программу другим друзьям на работе. его легко настроить и использовать. ускорение линейно для компиляции.

он также хорош для многоядерного процессора bacause, обычно vs использует одно ядро ​​для одного проекта, но opensibuild делает его параллельным для каждого .cpp файла...

попробуйте и посмотрите..:)

Ответ 5

Вы можете рассмотреть выделенную машину сборки, используя MSBuild. Оттуда вы сможете продолжить работу во время компиляции. Тем не менее, это осложняет ситуацию, поскольку вы вводите проблемы с сетью.

Ответ 6

Вы можете создавать классы в другом проекте, набирая классы, которые вам нужны для компиляции кода. Таким образом, вы можете протестировать и документировать свой новый код. После этого вы просто включаете его в настоящий проект и компилируете "по-настоящему". К тому моменту, когда он компилируется, вы уже работаете над другим фрагментом проекта, потому что вы на 95% успешно скомпилируете его. Или, к тому моменту, когда он компилируется, вы также можете написать свои модульные тесты.