【问题标题】:Visual studio reinstalls apps when re-running with no changesVisual Studio 在重新运行时重新安装应用程序而没有任何更改
【发布时间】:2016-05-16 21:19:34
【问题描述】:

我在调试我的 Android 应用时遇到问题。当我开始调试,然后停止,然后再次开始调试时,它总是会在手机上重新安装应用程序,即使没有进行任何更改。由于我们的应用程序很大,并且每次构建都需要一分钟以上才能完成,因此这可能会开始变得很痛苦。据我所知,我已经正确设置了所有内容,包括打开快速部署和禁用链接器以加快构建过程,但它仍然会重新构建、卸载和重新安装应用程序,这会占用大量时间。需要注意的一点是,我们在 Mac 上的 Xamarin Studio 中看不到这种行为,它只在 Visual Studio 中出现。

我正在运行 Visual Studio 2015 14.0.25123 update2 Xamarin Android 6.0.3.5 (a94a03b)。

请帮我解决这个问题。

谢谢。

【问题讨论】:

    标签: visual-studio xamarin nuget-package


    【解决方案1】:

    根据您提供的信息,您似乎遇到了我们最近看到的有关 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 包,然后使用 Windows 内置的 .zip 支持解压缩(必须使用 Windows 内置支持其他实用程序可能会保留虚假日期)。

    还创建了以下 VS 扩展程序来自动触摸违规包的日期,这绝对是对事情进行排序的最简单方法: https://visualstudiogallery.msdn.microsoft.com/0ffd5d55-6d03-4be1-95b5-a94c89af86ba

    请注意,如果您使用的是 Xamarin Studio,则不会出现此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多