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

VS 2008 Professional, Smart Device.NET С# project - медленная сборка

У меня есть VS 2008 Professional и Smart Device.NET С#. У меня есть ~ 100 cs файлов. Сборка занимает очень много времени, мне нужно ждать компоновщика ок. 1 мин (60 с) каждый раз при компиляции проекта. У меня Core i3, 4 ГБ оперативной памяти, 7200 об/мин.

Что вызывает это и как я могу оптимизировать сборку? Любые опции Visual Studio?

4b9b3361

Ответ 1

Если вы прокомментируете комментарий Hans Passant и установите MSBuild на диагностический вывод, он даст более четкое представление о том, что занимает время. Если вы обнаружите, что ваша сборка висит на компиляторе лицензирования (LC.exe), это может быть связано с попыткой вызвать сервер и тайм-аут. Вы можете решить эту проблему, изменив файл machine.config -

отредактируйте c:\windows\microsoft.net\framework\v2.0.50727\config\machine.config и добавьте следующий ключ:

  <configuration>
    <runtime>
      <generatePublisherEvidence enabled="false"/>

EDIT://

Основываясь на приведенном ниже комментарии, я немного погубил. Задача проверки платформы имеет известную проблему, когда она работает очень медленно в VS2008. Более подробную информацию об этом можно найти здесь:

http://blogs.msdn.com/b/vsdteam/archive/2006/09/15/756400.aspx

Один из способов - отключить задачу в вашей сборке. Для этого

1) Откройте файл:

%windir%\Microsoft.NET\Framework\v2.0.50727\Microsoft.CompactFramework.Common.Targets

для редактирования.

2) Перейдите к строке, которая гласит:

Name="PlatformVerificationTask">

и измените его на:

Name="PlatformVerificationTask" Condition="'$(SkipPlatformVerification)' != 'true'">

3) Добавьте переменную среды SkipPlatformVerification в систему и установите ее в значение "true" (Чтобы повторно включить проверку платформы, для переменной среды установите значение "false" ). Если вам нужна помощь по настройке переменной среды, прочитайте http://vlaurie.com/computers2/Articles/environment.htm. Если вы не хотите добавлять переменную окружения, вы можете заменить условие на то, что всегда ложно (т.е. Условие = "'true' == 'false'" )

Ответ 2

Просто переопределите цель в файле .csproj, как это. Затем он будет работать через машину, или, конечно, вы можете скопировать весь блок кода с добавленной условной линией. В любом случае вам не нужно изменять системный файл.

<Target Name="PlatformVerificationTask"></Target>