2016-05-16 2 views
1

У меня возникла проблема при отладке моего приложения для Android. Когда я начинаю отладку, а затем останавливаюсь, а затем снова начинаю отладку, она всегда будет переустанавливать приложение на телефоне, хотя никаких изменений не было сделано. Это может стать болью, так как наше приложение велико, и каждая сборка занимает более минуты. Насколько я могу судить, я все правильно установил, в том числе включив Fast Deployment и отключил компоновщик, чтобы ускорить процесс сборки, но он все еще перестраивает, удаляет и переустанавливает приложение, занимая много времени. Следует отметить, что мы не видим этого поведения в Xamarin Studio на Mac, это только в Visual Studio.Visual Studio переустанавливает приложения при повторном запуске без изменений

Я запускаю visual studio 2015 14.0.25123 update2 с Xamarin Android 6.0.3.5 (a94a03b).

Пожалуйста, помогите мне решить эту проблему.

спасибо.

ответ

2

Основываясь на предоставленной вами информации, похоже, что вы столкнулись с недавней проблемой, которую мы видели с пакетами NuGet и датированием. Новый клиент NuGet для Visual Studio теперь соблюдает даты, найденные внутри .nupkg, вместо использования текущей даты при записи файлов на диск.

Это означает, что пакеты с нечетными датами в своих файлах, такие как популярная библиотека ModernHttpClient (которая датирует его файлы с использованием 2046), будут записаны на диск с этими датами. В результате этого msbuild обнаружит эту дату в будущем при сборке и предположим, что ваше приложение не обновлено, а затем запускает полную перестройку, существенно нарушая поддержку инкрементной сборки.

Вы можете проверить, что это так, включив диагностический вывод msbuild. Самая первая строка в выходной сборки колодки должны читать что-то вроде:

1>Project 'App3' is not up to date. Input file 'c:\temp\app3\packages\modernhttpclient.2.4.2\lib\monoandroid\okhttp.dll' is modified after output file 'C:\temp\App3\App3\bin\Debug\App3.pdb'.

Чтобы исправить это, вы можете нажать дату нарушившего .dll на текущую дату или загрузить packlage NuGet с сайта NuGet , затем извлеките с помощью встроенной поддержки .zip Windows (вы должны использовать встроенную поддержку Windows, другие утилиты могут хранить фиктивные даты).

Следующая расширение VS также была создана автоматически потрогать даты оскорбительных пакетов и, безусловно, самый простой способ получить вещи сортируются: https://visualstudiogallery.msdn.microsoft.com/0ffd5d55-6d03-4be1-95b5-a94c89af86ba

Обратите внимание, что эта проблема не проявляется, если вы используете Xamarin Студия.