8000 [xabt] `Xamarin.Android.Build.Tasks.dll` should be strong-named by jonathanpeppers · Pull Request #10377 · dotnet/android · GitHub
[go: up one dir, main page]

Skip to content

Conversation

jonathanpeppers
Copy link
Member

Fixes: dotnet/maui#30948

MSBuild task assemblies can run on .NET framework when building inside Visual Studio.

If you have a .NET 8, .NET 9, and .NET 10 project in the same solution, the best way to support this is to strong name and version your assembly so that .NET framework can load multiple copies of it. This can also happen if you update the $(TargetFramework) while a project is open.

Unfortunately, #30948 uncovered an issue when .NET 9 and .NET 10:

  • .NET 8 Xamarin.Android.Build.Tasks.dll: strong named
  • .NET 9 Xamarin.Android.Build.Tasks.dll: not strong named
  • .NET 10 Xamarin.Android.Build.Tasks.dll: not strong named

I suspect this went wrong in 003f5d1, but we didn't notice it until now because .NET 8 was strong-named and .NET 9 was not.

To fix this, we simply need to set $(SignAssembly) to true.

Prior to 003f5d1, this was set to false because the ILRepack process signed at the end of the repacking. When ILRepack was removed, we forgot to enable strong name signing! Whoops!

Fixes: dotnet/maui#30948

MSBuild task assemblies can run on .NET framework when building inside
Visual Studio.

If you have a .NET 8, .NET 9, and .NET 10 project in the same
solution, the best way to support this is to strong name *and* version
your assembly so that .NET framework can load multiple copies of it.
This can also happen if you update the `$(TargetFramework)` while a
project is open.

Unfortunately, #30948 uncovered an issue when .NET 9 and .NET 10:

* .NET 8 `Xamarin.Android.Build.Tasks.dll`: strong named
* .NET 9 `Xamarin.Android.Build.Tasks.dll`: *not* strong named
* .NET 10 `Xamarin.Android.Build.Tasks.dll`: *not* strong named

I suspect this went wrong in 003f5d1, but we didn't notice it until
now because .NET 8 was strong-named and .NET 9 was not.

To fix this, we simply need to set `$(SignAssembly)` to `true`.

Prior to 003f5d1, this was set to false because the ILRepack process
signed at the end of the repacking. When ILRepack was removed, we
forgot to enable strong name signing! Whoops!
@jonathanpeppers
Copy link
Member Author

Downloaded the build, it is strong named now:

image

@jonathanpeppers jonathanpeppers 8000 merged commit e2d0ae2 into main Aug 6, 2025
59 checks passed
@jonathanpeppers jonathanpeppers deleted the dev/peppers/xabt-SignAssembly branch August 6, 2025 13:52
jonathanpeppers added a commit that referenced this pull request Aug 6, 2025
Fixes: dotnet/maui#30948

MSBuild task assemblies can run on .NET framework when building inside
Visual Studio.

If you have a .NET 8, .NET 9, and .NET 10 project in the same
solution, the best way to support this is to strong name *and* version
your assembly so that .NET framework can load multiple copies of it.
This can also happen if you update the `$(TargetFramework)` while a
project is open.

Unfortunately, #30948 uncovered an issue when .NET 9 and .NET 10:

* .NET 8 `Xamarin.Android.Build.Tasks.dll`: strong named
* .NET 9 `Xamarin.Android.Build.Tasks.dll`: *not* strong named
* .NET 10 `Xamarin.Android.Build.Tasks.dll`: *not* strong named

I suspect this went wrong in 003f5d1, but we didn't notice it until
now because .NET 8 was strong-named and .NET 9 was not.

To fix this, we simply need to set `$(SignAssembly)` to `true`.

Prior to 003f5d1, this was set to false because the ILRepack process
signed at the end of the repacking. When ILRepack was removed, we
forgot to enable strong name signing! Whoops!
@github-actions github-actions bot locked and limited conversation to collaborators Sep 6, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Unstable][.NET 10] Deploying in Android fails with MSB4063 & MSB4064 errors.

2 participants

0