Skip to content

Remove legacy projects importing Xamarin.Android.CSharp.targets#11684

Open
jonathanpeppers wants to merge 2 commits into
mainfrom
jonathanpeppers/remove-csharp-targets-imports
Open

Remove legacy projects importing Xamarin.Android.CSharp.targets#11684
jonathanpeppers wants to merge 2 commits into
mainfrom
jonathanpeppers/remove-csharp-targets-imports

Conversation

@jonathanpeppers

Copy link
Copy Markdown
Member

The Xamarin.Android.CSharp.targets import is the classic (non-SDK-style) Xamarin.Android project format and is no longer supported on main. Three test directories still imported it but were not wired into any CI pipeline, Makefile target, or RunTestApp invocation — git history shows the last substantive change to each was in 2020. They were dead code that the test solution still listed.

Remove the legacy projects and everything that referenced them:

  • tests/EmbeddedDSOs/
  • tests/locales/ (Xamarin.Android.Locale-Tests + the LibraryResources helper)
  • tests/ResolveImports/ (test app + 4 BindingResolveImportLib* bindings)

Xamarin.Android-Tests.sln drops the 8 project entries plus the now-empty Locales and ResolveImports solution folders, including all of their ProjectConfigurationPlatforms rows and NestedProjects mappings.

Documentation is updated to stop pointing at the removed projects and to drop the stale "Target definitions" section that documented manually importing Xamarin.Android.CSharp.targets:

  • Documentation/workflow/UnitTests.md
  • Documentation/docs-mobile/building-apps/build-process.md
  • Documentation/project-docs/ExploringSources.md
  • .github/skills/tests/references/test-catalog.md

The remaining EmbeddedDSO[s] / GenerateLibraryResources references in the repo are unrelated — they belong to the SDK's runtime EmbeddedDSOsEnabled packaging feature (Xamarin.Android.Common.targets, ReadAndroidManifest.cs) and to an MSBuild [Test] EmbeddedDSOs method in PackagingTest.cs that builds its own project via Xamarin.ProjectTools.

No unit tests are added: this PR only deletes orphaned projects.

The `Xamarin.Android.CSharp.targets` import is the classic
(non-SDK-style) Xamarin.Android project format and is no longer
supported. Remove the legacy test projects that still rely on it:

  * `tests/EmbeddedDSOs/`
  * `tests/locales/`
  * `tests/ResolveImports/`

Update `Xamarin.Android-Tests.sln` to drop the removed projects and
their now-empty `Locales` and `ResolveImports` solution folders, and
clean up the documentation that referenced these projects or the
legacy `Xamarin.Android.CSharp.targets` import:

  * `Documentation/workflow/UnitTests.md`
  * `Documentation/docs-mobile/building-apps/build-process.md`
  * `Documentation/project-docs/ExploringSources.md`
  * `.github/skills/tests/references/test-catalog.md`

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes dead/legacy (non-SDK-style) test projects that still imported Xamarin.Android.CSharp.targets and cleans up solution/documentation references so the repo no longer points at unsupported project formats on main.

Changes:

  • Removed legacy test project directories (tests/EmbeddedDSOs/, tests/locales/, tests/ResolveImports/) and their project files/resources.
  • Updated Xamarin.Android-Tests.sln to drop the removed projects and solution folders.
  • Updated documentation and test catalog references to stop pointing at the removed projects.

Reviewed changes

Copilot reviewed 95 out of 104 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Xamarin.Android-Tests.sln Removes legacy test project entries and associated solution folder/config mappings
tests/ResolveImports/.gitignore Removes ignore rules for deleted ResolveImports artifacts
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Xamarin.Android.BindingResolveImports-Tests.csproj Removes legacy ResolveImports test app project
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/MainActivity.cs Removes legacy ResolveImports test app source
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Assets/AboutAssets.txt Removes ResolveImports test app asset doc
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Properties/AndroidManifest.xml Removes ResolveImports test app manifest
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Properties/AssemblyInfo.cs Removes ResolveImports test app assembly info
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Resources/AboutResources.txt Removes ResolveImports test app resource doc
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Resources/layout/Main.axml Removes ResolveImports test app layout
tests/ResolveImports/Xamarin.Android.BindingResolveImports-Tests/Resources/values/Strings.xml Removes ResolveImports test app strings
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Xamarin.Android.BindingResolveImportLib1.csproj Removes legacy binding project Lib1
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Xamarin.Android.BindingResolveImportLib1.targets Removes Lib1 custom targets
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Additions/AboutAdditions.txt Removes Lib1 additions doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Jars/AboutJars.txt Removes Lib1 jars doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Jars/com/xamarin/android/test/binding/resolveimport/Lib1.java Removes Lib1 Java source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Properties/AndroidManifest.xml Removes Lib1 manifest
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Properties/AssemblyInfo.cs Removes Lib1 assembly info
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Transforms/EnumFields.xml Removes Lib1 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Transforms/EnumMethods.xml Removes Lib1 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib1/Transforms/Metadata.xml Removes Lib1 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.csproj Removes legacy binding project Lib2
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.targets Removes Lib2 custom targets
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Additions/AboutAdditions.txt Removes Lib2 additions doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Additions/Addition.cs Removes Lib2 additions source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Jars/AboutJars.txt Removes Lib2 jars doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Jars/com/xamarin/android/test/binding/resolveimport/Lib2.java Removes Lib2 Java source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Properties/AssemblyInfo.cs Removes Lib2 assembly info
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Transforms/EnumFields.xml Removes Lib2 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Transforms/EnumMethods.xml Removes Lib2 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Transforms/Metadata.xml Removes Lib2 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Android.mk Removes Lib2 native build script
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Application.mk Removes Lib2 native build script
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/timing.c Removes Lib2 native source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Xamarin.Android.BindingResolveImportLib3.csproj Removes legacy binding project Lib3
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Xamarin.Android.BindingResolveImportLib3.targets Removes Lib3 custom targets
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Additions/AboutAdditions.txt Removes Lib3 additions doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Jars/AboutJars.txt Removes Lib3 jars doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Jars/com/xamarin/android/test/binding/resolveimport/Lib3.java Removes Lib3 Java source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Properties/AndroidManifest.xml Removes Lib3 manifest
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Properties/AssemblyInfo.cs Removes Lib3 assembly info
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Transforms/EnumFields.xml Removes Lib3 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Transforms/EnumMethods.xml Removes Lib3 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib3/Transforms/Metadata.xml Removes Lib3 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.csproj Removes legacy binding project Lib4
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.targets Removes Lib4 custom targets
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Additions/AboutAdditions.txt Removes Lib4 additions doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Jars/AboutJars.txt Removes Lib4 jars doc
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Jars/com/xamarin/android/test/binding/resolveimport/Lib4.java Removes Lib4 Java source
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Properties/AssemblyInfo.cs Removes Lib4 assembly info
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Transforms/EnumFields.xml Removes Lib4 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Transforms/EnumMethods.xml Removes Lib4 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Transforms/Metadata.xml Removes Lib4 transform file
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Android.mk Removes Lib4 native build script
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Application.mk Removes Lib4 native build script
tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/timing.c Removes Lib4 native source
tests/locales/LibraryResources/Environment.txt Removes legacy locales helper environment file
tests/locales/LibraryResources/LibraryResources.csproj Removes legacy locales helper project
tests/locales/LibraryResources/Resources/AboutResources.txt Removes locales helper resource doc
tests/locales/LibraryResources/Resources/values/Strings.xml Removes locales helper strings
tests/locales/LibraryResources/SatelliteResources.cs Removes locales helper satellite resource access code
tests/locales/LibraryResources/strings.de-DE.resx Removes locales helper satellite resx
tests/locales/LibraryResources/strings.fr-FR.resx Removes locales helper satellite resx
tests/locales/LibraryResources/strings.resx Removes locales helper base resx
tests/locales/Xamarin.Android.Locale-Tests/Assets/AboutAssets.txt Removes legacy locales test asset doc
tests/locales/Xamarin.Android.Locale-Tests/Environment.txt Removes legacy locales test environment file
tests/locales/Xamarin.Android.Locale-Tests/EnvironmentTests.cs Removes legacy locales test source
tests/locales/Xamarin.Android.Locale-Tests/GlobalizationTests.cs Removes legacy locales test source
tests/locales/Xamarin.Android.Locale-Tests/MainActivity.cs Removes legacy locales test app source
tests/locales/Xamarin.Android.Locale-Tests/Properties/AndroidManifest.xml Removes legacy locales test manifest
tests/locales/Xamarin.Android.Locale-Tests/Properties/AssemblyInfo.cs Removes legacy locales test assembly info
tests/locales/Xamarin.Android.Locale-Tests/Resources/AboutResources.txt Removes legacy locales test resource doc
tests/locales/Xamarin.Android.Locale-Tests/SatelliteAssemblyTests.cs Removes legacy locales test source
tests/locales/Xamarin.Android.Locale-Tests/TestInstrumentation.cs Removes legacy locales test instrumentation
tests/locales/Xamarin.Android.Locale-Tests/TimeZoneTests.cs Removes legacy locales test source
tests/locales/Xamarin.Android.Locale-Tests/Xamarin.Android.Locale-Tests.csproj Removes legacy locales test project
tests/locales/Xamarin.Android.Locale-Tests/Xamarin.Android.Locale-Tests.projitems Removes legacy locales test projitems
tests/locales/Xamarin.Android.Locale-Tests/strings.de-DE.resx Removes legacy locales test satellite resx
tests/locales/Xamarin.Android.Locale-Tests/strings.fr-FR.resx Removes legacy locales test satellite resx
tests/locales/Xamarin.Android.Locale-Tests/strings.resx Removes legacy locales test base resx
tests/EmbeddedDSOs/EmbeddedDSO/Assets/AboutAssets.txt Removes legacy EmbeddedDSO test asset doc
tests/EmbeddedDSOs/EmbeddedDSO/EmbeddedDSO.csproj Removes legacy EmbeddedDSO test project
tests/EmbeddedDSOs/EmbeddedDSO/EmbeddedDSO.projitems Removes legacy EmbeddedDSO projitems
tests/EmbeddedDSOs/EmbeddedDSO/Environment.txt Removes legacy EmbeddedDSO environment file
tests/EmbeddedDSOs/EmbeddedDSO/MainActivity.cs Removes legacy EmbeddedDSO app source
tests/EmbeddedDSOs/EmbeddedDSO/NUnitInstrumentation.cs Removes legacy EmbeddedDSO instrumentation
tests/EmbeddedDSOs/EmbeddedDSO/Properties/AndroidManifest.xml Removes legacy EmbeddedDSO manifest
tests/EmbeddedDSOs/EmbeddedDSO/Properties/AssemblyInfo.cs Removes legacy EmbeddedDSO assembly info
tests/EmbeddedDSOs/EmbeddedDSO/Resources/AboutResources.txt Removes legacy EmbeddedDSO resource doc
tests/EmbeddedDSOs/EmbeddedDSO/Resources/layout/Main.axml Removes legacy EmbeddedDSO layout
tests/EmbeddedDSOs/EmbeddedDSO/Resources/values/Strings.xml Removes legacy EmbeddedDSO strings
tests/EmbeddedDSOs/EmbeddedDSO/Tests.cs Removes legacy EmbeddedDSO NUnit test
Documentation/workflow/UnitTests.md Removes references to deleted legacy test projects (and should be aligned with current on-device runner)
Documentation/project-docs/ExploringSources.md Removes stale note about Xamarin.Android.CSharp.targets location
Documentation/docs-mobile/building-apps/build-process.md Removes stale “Target definitions” section describing manual Xamarin.Android.CSharp.targets imports
.github/skills/tests/references/test-catalog.md Removes deleted test entries (and should be aligned with current on-device runner)

Comment thread Documentation/workflow/UnitTests.md Outdated
Comment on lines 395 to 399
@@ -399,8 +399,6 @@ the tests on the device. They use a custom mobile version of `NUnit` called
These tests are generally found in:
Comment on lines 131 to 135
| **system.xml** | Same project — tests in `System.Xml/` | XML processing tests |
| **threading** | Same project — tests in `System.Threading/` | Threading and async tests |
| **drawing** | Same project — tests in `System.Drawing/` | System.Drawing tests |
| **locales (on-device)** | `tests/locales/Xamarin.Android.Locale-Tests/Xamarin.Android.Locale-Tests.csproj` | Locale/culture/globalization |
| **embedded DSOs** | `tests/EmbeddedDSOs/EmbeddedDSO/EmbeddedDSO.csproj` | Native library loading |

### On-device test categories
Comment on lines 131 to 135
| **system.xml** | Same project — tests in `System.Xml/` | XML processing tests |
| **threading** | Same project — tests in `System.Threading/` | Threading and async tests |
| **drawing** | Same project — tests in `System.Drawing/` | System.Drawing tests |
| **locales (on-device)** | `tests/locales/Xamarin.Android.Locale-Tests/Xamarin.Android.Locale-Tests.csproj` | Locale/culture/globalization |
| **embedded DSOs** | `tests/EmbeddedDSOs/EmbeddedDSO/EmbeddedDSO.csproj` | Native library loading |

### On-device test categories
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants