Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating NuGet packages does not update the app #7890

Closed
mattleibow opened this issue Mar 16, 2023 · 2 comments · Fixed by #7892
Closed

Updating NuGet packages does not update the app #7890

mattleibow opened this issue Mar 16, 2023 · 2 comments · Fixed by #7892
Assignees
Labels
Area: App+Library Build Issues when building Library projects or Application projects.

Comments

@mattleibow
Copy link
Member

Android application type

.NET Android (net7.0-android, etc.)

Affected platform version

All

Description

I have noticed that when I update nugets in my maui app, the dll updates do not reach the final device.

Steps to Reproduce

I have a GitHub Action here with a test case script:

  1. dotnet new maui
  2. dotnet build -f net8.0-android /bl:build-1-initial.binlog
  3. dotnet add package Newtonsoft.Json --version 13.0.1
  4. dotnet build -f net8.0-android /bl:build-1-after-json.binlog
  5. dotnet add package Newtonsoft.Json --version 13.0.3
  6. dotnet build -f net8.0-android /bl:build-1-after-update.binlog
  7. (Get-Item obj\Debug\net8.0-android\android\assets\Newtonsoft.Json.dll).VersionInfo

The output of 7. is still 13.0.1

Did you find any workaround?

Rebuild

Relevant log output

https://github.com/mattleibow/maui-bug-repros/actions/runs/4440605792/jobs/7794616600#step:5:153
@mattleibow mattleibow added Area: App+Library Build Issues when building Library projects or Application projects. needs-triage Issues that need to be assigned. labels Mar 16, 2023
@jonathanpeppers
Copy link
Member

Oh snap, this test is disabled in .NET 6+:

https://github.com/xamarin/xamarin-android/blob/0e4c29aabb2af023d3ff66f02d42c2b487575d85/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs#L984-L988

It must have been broken because it uses Xamarin.Forms.

So something maybe has been wrong here since .NET 6?

@dellis1972
Copy link
Contributor

I'll update that test to make use of say NewtonSoft.Json it probably doesn't need to be Xamrain.Forms

@dellis1972 dellis1972 removed the needs-triage Issues that need to be assigned. label Mar 17, 2023
dellis1972 added a commit to dellis1972/xamarin-android that referenced this issue Mar 17, 2023
… the app

Fixes dotnet#7890

We found and issue where if you upgraded a NuGet Package it did not up
date the assemblies in the `$(IntermediateOutputPath)android\assets` folder.
We have a unit test which checks this particular scenario, but it was
disabled on .net during the port to .net 6. We never got back to enable it.

The issue it turns out is that NuGet not longer populates the `ProjectLockFile`
property. As a result we never stored the `_NuGetAssetsTimestamp` in the
`build.props` file. This causes the `_CleanIntermediateIfNeeded` target
to be skipped when it really should run.

Switching over to using the `ProjectAssetsFile` property to populate the
`_NuGetAssetsTimestamp` property fixes the issue. Also the unit test was
updated to work on both Legacy and .net.
dellis1972 added a commit to dellis1972/xamarin-android that referenced this issue Mar 20, 2023
… the app

Fixes dotnet#7890

We found and issue where if you upgraded a NuGet Package it did not up
date the assemblies in the `$(IntermediateOutputPath)android\assets` folder.
We have a unit test which checks this particular scenario, but it was
disabled on .net during the port to .net 6. We never got back to enable it.

The issue it turns out is that NuGet not longer populates the `ProjectLockFile`
property. As a result we never stored the `_NuGetAssetsTimestamp` in the
`build.props` file. This causes the `_CleanIntermediateIfNeeded` target
to be skipped when it really should run.

Switching over to using the `ProjectAssetsFile` property to populate the
`_NuGetAssetsTimestamp` property fixes the issue. Also the unit test was
updated to work on both Legacy and .net.
dellis1972 added a commit that referenced this issue Mar 21, 2023
… the app (#7892)

Fixes #7890

We found and issue where if you upgraded a NuGet Package it did not up
date the assemblies in the `$(IntermediateOutputPath)android\assets` folder.
We have a unit test which checks this particular scenario, but it was
disabled on .net during the port to .net 6. We never got back to enable it.

The issue it turns out is that NuGet not longer populates the `ProjectLockFile`
property. As a result we never stored the `_NuGetAssetsTimestamp` in the
`build.props` file. This causes the `_CleanIntermediateIfNeeded` target
to be skipped when it really should run.

Switching over to using the `ProjectAssetsFile` property to populate the
`_NuGetAssetsTimestamp` property fixes the issue. Also the unit test was
updated to work on both Legacy and .net.
@ghost ghost locked as resolved and limited conversation to collaborators Apr 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Area: App+Library Build Issues when building Library projects or Application projects.
Projects
None yet
3 participants