[xabt] Xamarin.Android.Build.Tasks.dll should be strong-named#10377
Merged
jonathanpeppers merged 1 commit intomainfrom Aug 6, 2025
Merged
[xabt] Xamarin.Android.Build.Tasks.dll should be strong-named#10377jonathanpeppers merged 1 commit intomainfrom
Xamarin.Android.Build.Tasks.dll should be strong-named#10377jonathanpeppers merged 1 commit intomainfrom
Conversation
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!
grendello
approved these changes
Aug 6, 2025
Member
Author
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!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

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:
Xamarin.Android.Build.Tasks.dll: strong namedXamarin.Android.Build.Tasks.dll: not strong namedXamarin.Android.Build.Tasks.dll: not strong namedI 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)totrue.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!