Почему Xamarin.Android полностью перестраивает решение при запуске?

Я использую Xamarin Studio с Xamarin.iOS и Xamarin.Android. Моя рабочая область содержит два решения: одно для Android, другое для ios. Проекты примерно одинаковые. Когда я собираю решение для ios, оно пересобирает только измененные проекты. Он выполняет некоторые дополнительные операции, которые занимают очень мало времени. Таким образом, нажатие Build во второй раз практически не занимает времени.

Но когда я создаю решение для Android, оно перестраивает все проекты независимо от изменений в файлах, конфигурации и так далее. Если я нажму Build после успешной сборки, он перестроит все заново. Хуже того, если я попытаюсь запустить только что созданный проект, он перестроит его! Кроме того, если я запускаю проект после запуска (при отладке программы это часто происходит), он снова перестраивает его. Так как у меня много проектов, это занимает очень много времени, плюс компиляция сильно зависит от процессора, поэтому улучшить скорость сложно.

Вообще вопрос в том, можно ли не пересобирать все решение при каждой сборке? Может быть, я пропустил какой-то параметр конфигурации или что-то неправильно настроено?

Я не знаю, имеет ли что-либо отношение к конфигурации проектов к этому вопросу, поэтому, пожалуйста, скажите мне, какая часть конфигурации решения/проектов может помочь.

Версии:

Xamarin Studio
Version 4.0.9 (build 12)
Xamarin.Android
Version: 4.7.11 (Business Edition)

// Я думал, что отдельная компиляция в наше время обязательна в каждом серьезном компиляторе, поэтому полагаю, что сделал что-то не так.

UPD: Я установил последние версии Xamarin Studio и Xamarin.Android:

Xamarin Studio
Version 4.0.12 (build 3)
Xamarin.Android
Version: 4.8.1 (Business Edition)

Восстановление решения для Android занимает 1 минуту 58 секунд. Каждый раз, когда я запускаю приложение.


person Aneri    schedule 25.08.2013    source источник


Ответы (3)


Честно говоря, это звучит как ошибка в Xamarin Studio или инструменте сборки xbuild, по крайней мере, если предположить, что у вас нет каких-либо пользовательских шагов сборки (которых у вас, вероятно, нет)? Не могли бы вы отправить отчет об ошибке на https://bugzilla.xamarin.com? Спасибо! Это действительно не должно перестраивать проект каждый раз.

Я очень рад слышать, что ваш проект iOS не перестраивается, потому что я сопровождаю код сборки iOS :-)

person jstedfast    schedule 29.09.2013
comment
Спасибо за ваш ответ! На самом деле у меня есть предварительный пользовательский шаг в одном проекте (запускающем). Но удаление не помогло. Я постараюсь сделать наименьшую возможную выборку и зарегистрировать ошибку. - person Aneri; 03.10.2013
comment
можно ссылку на баг? потому что я все еще получаю это сегодня - person kkarakk; 29.04.2019

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

person Cheesebaron    schedule 25.08.2013
comment
Почему тогда повторный запуск вызывает перестроение? - person Aneri; 25.08.2013

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

person renanyoy    schedule 17.12.2013
comment
Это. bugzilla.xamarin.com/show_bug.cgi?id=15162 Говорят, исправлено, и я бы сказал, что это так. Теперь это намного быстрее. - person Aneri; 18.12.2013
comment
это должно быть мгновенно, без перестроения.. и я сказал, что это не ошибка, потому что это всегда работало так, так как я использую Xamarin.Android // около 3 лет // - person renanyoy; 23.12.2013
comment
ошибка все еще существует в 2019 году, полная перестройка даже без изменения кода - person kkarakk; 29.04.2019