我在调试Android应用时遇到问题。当我开始调试,然后停止,然后再次开始调试时,它将始终在手机上重新安装应用程序,即使没有进行任何更改。这可能会开始变得很痛苦,因为我们的应用程序很大,每个构建都需要一分钟才能完成。据我所知,我已正确设置所有内容,包括启用快速部署并禁用链接器以加快构建过程,但它仍然会重建,卸载并重新安装应用程序,从而占用大量时间。需要注意的一点是,我们在Mac上的Xamarin Studio中看不到这种行为,它只在Visual Studio中。
我正在使用visual studio 2015 14.0.25123 update2 Xamarin Android 6.0.3.5(a94a03b)。
请帮我解决这个问题。
谢谢。
答案 0 :(得分:2)
根据您提供的信息,您似乎遇到了我们在NuGet套餐和约会中看到的最新问题。 Visual Studio的新NuGet客户端现在将遵循.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的日期触摸到当前日期,或者从NuGet网站下载NuGet packlage,然后使用Windows内置的.zip支持解压缩(必须使用Windows内置的支持其他公用事业可能会保持虚假日期。)
还创建了以下VS扩展来自动触摸违规包的日期,这绝对是最简单的排序方式: https://visualstudiogallery.msdn.microsoft.com/0ffd5d55-6d03-4be1-95b5-a94c89af86ba
请注意,如果您使用的是Xamarin Studio,则不会显示此问题。