dotnet / android

.NET for Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#
MIT License
1.93k stars 531 forks source link

Xamarin.Android tasks evaluate before Directory.Build.props is read #3321

Closed damphyr closed 6 months ago

damphyr commented 5 years ago

Steps to Reproduce

  1. Create a Xamarin.Android project with the wizard
  2. Add
    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
      <BaseOutputPath>$(MSBuildThisFileDirectory)\out\build\$(MSBuildProjectName)</BaseOutputPath>
      <BaseIntermediateOutputPath>$(BaseOutputPath)</BaseIntermediateOutputPath>
    </PropertyGroup>
    </Project>

    as Directory.Build.props next to the solution (this sets the property values at an early point for msbuild and is needed for nuget restores)

  3. Replace/Add the following in the .csproj wherever you find OutputPath
    <OutputPath>$(BaseOutputPath)\$(AssemblyName)\bin\$(Configuration)</OutputPath>
    <IntermediateOutputPath>$(BaseIntermediateOutputPath)$(AssemblyName)\obj\$(Configuration)</IntermediateOutputPath>

Expected Behavior

All build generated files are under the \out\ directory.

Actual Behavior

Android build is in c:\$(AssemblyName)\bin NuGet packages etc. are under \out\

Version Information

Microsoft Visual Studio Professional 2019 Version 16.1.3 VisualStudio.16.Release/16.1.3+29009.5 Microsoft .NET Framework Version 4.8.03752

Installed Version: Professional

ADL Tools Service Provider 1.0 This package contains services used by Data Lake tools

Application Insights Tools for Visual Studio Package 9.1.00429.1 Application Insights Tools for Visual Studio

ASP.NET and Web Tools 2019 16.1.429.50124 ASP.NET and Web Tools 2019

ASP.NET Web Frameworks and Tools 2019 16.1.429.50124 For additional information, visit https://www.asp.net/

Azure App Service Tools v3.0.0 16.1.429.50124 Azure App Service Tools v3.0.0

Azure Data Lake Node 1.0 This package contains the Data Lake integration nodes for Server Explorer.

Azure Data Lake Tools for Visual Studio 2.3.9000.0 Microsoft Azure Data Lake Tools for Visual Studio

Azure Functions and Web Jobs Tools 16.1.429.50124 Azure Functions and Web Jobs Tools

Azure Stream Analytics Tools for Visual Studio 2.3.9000.0 Microsoft Azure Stream Analytics Tools for Visual Studio

C# Tools 3.1.1-beta4-19281-06+58a4b1e79aea28115e66b06f850c83a3f1fcb6d3 C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Extensibility Message Bus 1.1.77 (master@24013d5) Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.

Fabric.DiagnosticEvents 1.0 Fabric Diagnostic Events

IntelliCode Extension 1.0 IntelliCode Visual Studio Extension Detailed Info

Microsoft Azure HDInsight Azure Node 2.3.9000.0 HDInsight Node under Azure Node

Microsoft Azure Hive Query Language Service 2.3.9000.0 Language service for Hive query

Microsoft Azure Service Fabric Tools for Visual Studio 2.5 Microsoft Azure Service Fabric Tools for Visual Studio

Microsoft Azure Stream Analytics Language Service 2.3.9000.0 Language service for Azure Stream Analytics

Microsoft Azure Stream Analytics Node 1.0 Azure Stream Analytics Node under Azure Node

Microsoft Azure Tools 2.9 Microsoft Azure Tools for Microsoft Visual Studio 0x10 - v2.9.20419.2

Microsoft Continuous Delivery Tools for Visual Studio 0.4 Simplifying the configuration of Azure DevOps pipelines from within the Visual Studio IDE.

Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft Library Manager 1.0 Install client-side libraries easily to any web project

Microsoft MI-Based Debugger 1.0 Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual Studio Tools for Containers 1.1 Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.

Mono Debugging for Visual Studio 16.1.1 (2473f22) Support for debugging Mono processes with Visual Studio.

Multilingual App Toolkit 4.0 Multilingual App Toolkit helps you localize your Windows Store app by providing file management, pseudo and machine translation, translation editor, and build integration. http://aka.ms/matinstall

Node.js Tools 1.5.10424.1 Commit Hash:c3ce0ae0b29c0b3a755ffc12f8a685fe7ddd3600 Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager 5.1.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/

ProjectServicesPackage Extension 1.0 ProjectServicesPackage Visual Studio Extension Detailed Info

ResourcePackage Extension 1.0 ResourcePackage Visual Studio Extension Detailed Info

ResourcePackage Extension 1.0 ResourcePackage Visual Studio Extension Detailed Info

SQL Server Data Tools 16.0.61904.23160 Microsoft SQL Server Data Tools

ToolWindowHostedEditor 1.0 Hosting json editor into a tool window

TypeScript Tools 16.0.10506.2004 TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 3.1.1-beta4-19281-06+58a4b1e79aea28115e66b06f850c83a3f1fcb6d3 Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools 10.4 for F# 4.6 16.1.0-beta.19253.3+42526fe359672a05fd562dc16a91a43d0fe047a7 Microsoft Visual F# Tools 10.4 for F# 4.6

Visual Studio Code Debug Adapter Host Package 1.0 Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

Visual Studio Tools for Containers 1.0 Visual Studio Tools for Containers

Visual Studio Tools for Kubernetes 1.0 Visual Studio Tools for Kubernetes

VisualStudio.Mac 1.0 Mac Extension for Visual Studio

Xamarin 16.1.0.543 (d16-1@34a619991) Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin Designer 16.1.0.418 (remotes/origin/d16-1@5b958bb10) Visual Studio extension to enable Xamarin Designer tools in Visual Studio.

Xamarin Templates 16.2.112 (4db4af4) Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms.

Xamarin.Android SDK 9.3.0.22 (HEAD/8e7764fdf) Xamarin.Android Reference Assemblies and MSBuild support. Mono: mono/mono/2018-08@3cb36842fc4 Java.Interop: xamarin/java.interop/d16-1@5ddc3e3 LibZipSharp: grendello/LibZipSharp/d16-1@44de300 LibZip: nih-at/libzip/rel-1-5-1@b95cf3f ProGuard: xamarin/proguard/master@905836d SQLite: xamarin/sqlite/3.27.1@8212a2d Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-1@acabd26

Xamarin.iOS and Xamarin.Mac SDK 12.10.0.153 (750a879) Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

damphyr commented 5 years ago

This is a problem with the msbuild tasks for the Android build ( I say that, because in every other context the method works: Project has Azure/Azure Functions, ASP.NET Core and Xamarin code).

The BaseOutputPath and BaseIntermediatePath are not yet set when certain tasks run (if you use an underpowered VM you will notice that the directories for the build (obj\Release\90 etc.) are created before the nuget restore.

The Directory.Build.props hook is explicitly there to provide values for properties early on and as a way to share values across projects (https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2019) but the Xamarin.Android tasks are somehow running before it is loaded.

The workaround is to explicitly set the values in the project but this defeats the purpose of using Directory.Builds.pros and having everything in one place.

jonathanpeppers commented 5 years ago

I can't get this to work for a .NET framework Console app: ConsoleAppDirectoryBuild.zip

Let me know if I'm doing something wrong there.

I also wouldn't recommend setting $(BaseIntermediateOutputPath) to the same value as $(BaseOutputPath), I would think that would break all kinds of things...

Maybe this would be better:

<BaseOutputPath>$(MSBuildThisFileDirectory)\out\build\$(MSBuildProjectName)</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)\out\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>

I think this actually an issue trying to override these two specific properties with non-SDK style projects, and it's nothing to do with Xamarin.Android. Let me know otherwise, thanks!

damphyr commented 5 years ago

This is specific to a Xamarin.Android project. Every other project I created works as expected (although I haven't tried it with an iOS project yet).

What I did was create a new Xamarin.Android project and choose the first option (so a SingleView App)

As for the values of BaseInterrmediateOutputPath - obj/ is added by IntermediateOutputPath (even in the default). It is sufficient to differentiate by project. The default value for both base paths is actually the same (the project directory).

I've attached the project that reproduces the behaviour - Solution and project are in the src/ folder, expected behaviour is to have an out/ folder with everything next to src/.

XamAndroidOoB.zip

jonathanpeppers commented 5 years ago

Does a regular .NET framework project work for you?

We extend their MSBuild targets, so if it doesn’t work there—that is where the problem is.

damphyr commented 5 years ago

Now I understood what you meant. Yes, a normal .NET Framework app works as expected. Again, used the wizard for a console app and just changed the OutputPath value in the .csproj

DotNetClassicOoB.zip

damphyr commented 5 years ago

If as you are saying all you do is extend the tasks then I would assume the values are overwritten instead of not read at the right time.

jonathanpeppers commented 5 years ago

It looks like in this PR...

It just ovewrites the value: https://github.com/xamarin/xamarin-android/blob/0b79ab6653a4364f837d513453567485c535c611/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.DefaultOutputPaths.targets#L3

This would be an easy first contribution if you didn't want to wait on us to fix this! cc me if you send a PR, thanks!

damphyr commented 5 years ago

Not that easy unfortunately - that assignment is protected with a conditional on the value being empty. So I am back on the assumption that Xamarin.Android.DefaultOutputPaths.targets is called too early.

bddckr commented 5 years ago

I'm successfully moving all output of a Xamarin.Android app project to a customized path with the following:

<Project>
  <PropertyGroup>
    <OutputPath>$(SolutionDir)artifacts/build/bin/$(Platform)/$(Configuration)/$(TargetFramework)/$(MSBuildProjectName)/</OutputPath>
    <BaseIntermediateOutputPath>$(SolutionDir)artifacts/build/obj/base/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
    <IntermediateOutputPath>$(SolutionDir)artifacts/build/obj/$(Platform)/$(Configuration)/$(TargetFramework)/$(MSBuildProjectName)/</IntermediateOutputPath>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
  </PropertyGroup>
</Project>

In the same solution this also works with .NET Standard 2.1 class library projects and a .NET Core 3.0 one.

System Info ``` Microsoft Visual Studio Community 2019 Preview Version 16.4.0 Preview 2.0 VisualStudio.16.Preview/16.4.0-pre.2.0+29411.138 Microsoft .NET Framework Version 4.8.03752 Installed Version: Community Visual C++ 2019 00435-60000-00000-AA534 Microsoft Visual C++ 2019 .ignore 1.2.77 A language service that makes it painless to handle all types of .ignore files such as .gitignore, .tfignore, etc. Add New File 3.5.134 The fastest and easiest way to add new files to any project - including files that start with a dot ASP.NET and Web Tools 2019 16.4.284.46185 ASP.NET and Web Tools 2019 ASP.NET Web Frameworks and Tools 2019 16.4.284.46185 For additional information, visit https://www.asp.net/ AssemblyInfo Wizard 1.0 AssemblyInfo Wizard Azure App Service Tools v3.0.0 16.4.284.46185 Azure App Service Tools v3.0.0 C# Tools 3.4.0-beta2-19504-06+154af84a603094b52bd08b3366c4448f7481af52 C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used. Child Process Debugging Power Tool 1.0 Power tool to add child process debugging to Visual Studio. Code Cleanup On Save 1.0.6 Automatically run one of the Code Clean profiles when saving the document. This ensures your code is always formatted correctly and follows your coding style conventions. CodeMaid 11.0.183 CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding. Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools. CreateUnitTestBoilerplateCommand Extension 1.0 CreateUnitTestBoilerplateCommand Visual Studio Extension Detailed Info Disable No Source Available Tab 3.0 This small extension will prevent the tool window with title 'No Source Available' from appearing in Visual Studio, and preserve the focus on the currently active tab. Alas, along with brilliant improvements such as IntelliTrace, Visual Studio otherwise displays a tab stating that it cannot find source code where to step into. This is obvious when simply pausing an idle application, therefore it forces the developer to close this window before getting back to the code he wants to modify, which may be a productivity killer. Let's hope this extension will be short-term lived as the Visual Studio development team adds an option to better control this behavior! This extension should work with all locales of Visual Studio. EditorConfig Language Service 1.17.260 Language service for .editorconfig files. EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs. Extensibility Message Bus 1.2.0 (d16-2@8b56e20) Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration. File Icons 2.7 Adds icons for files that are not recognized by Solution Explorer FormatCommand Extension 1.0 FormatCommand Visual Studio Extension Detailed Info GitHub.VisualStudio 2.10.8.8121 A Visual Studio Extension that brings the GitHub Flow into Visual Studio. IntelliCode Extension 1.0 IntelliCode Visual Studio Extension Detailed Info JsonViewer 1.0 JSON viewer Markdown Editor 1.12.236 A full featured Markdown editor with live preview and syntax highlighting. Supports GitHub flavored Markdown. Microsoft Continuous Delivery Tools for Visual Studio 0.4 Simplifying the configuration of Azure DevOps pipelines from within the Visual Studio IDE. Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines Microsoft Library Manager 2.0.87+gbb515bf382 Install client-side libraries easily to any web project Microsoft MI-Based Debugger 1.0 Provides support for connecting Visual Studio to MI compatible debuggers Microsoft Visual C++ Wizards 1.0 Microsoft Visual C++ Wizards Microsoft Visual Studio Tools for Containers 1.1 Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container. Microsoft Visual Studio VC Package 1.0 Microsoft Visual Studio VC Package Mono Debugging for Visual Studio 16.5.21 (2604ba1) Support for debugging Mono processes with Visual Studio. NuGet Package Manager 5.4.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/ Open in Visual Studio Code 1.4.46 Adds a menu command that lets you open any solution, project, folder and file in Visual Studio Code. PowerShell Pro Tools for Visual Studio 1.0 A set of tools for developing and debugging PowerShell scripts and modules in Visual Studio. ProjectConfigurationManager 1.9.2171.0 Information about my package ProjectServicesPackage Extension 1.0 ProjectServicesPackage Visual Studio Extension Detailed Info Reference Conflict Analyser Extension 1.0 A tool for analysis of the "Could not load file or assembly or one of its dependencies" problem. ReviewsToolWindow Extension 1.0 ReviewsToolWindow Visual Studio Extension Detailed Info Rewrap Extension 1.0 Rewrap Extension Detailed Info Smart Command Line Arguments Extension 2.2.0 A Visual Studio Extension which aims to provide a better UI to manage your command line arguments. For additional information, visit https://github.com/MBulli/SmartCommandlineArgs SQL Server Data Tools 16.0.61910.04130 Microsoft SQL Server Data Tools SubwordNavigation 1.5.0 Provides subword navigation for Visual Studio. Syntax Highlighting Pack 2.8.134 Adds syntax highlighting and snippet support for a wide variety of programming languages such as Clojure, Go, Jade, Lua, Swift, Ruby and many more... TermWindow Extension 1.0 TermWindow Visual Studio Extension Detailed Info TypeScript Tools 16.0.10926.2001 TypeScript Tools for Microsoft Visual Studio Viasfora 4.2.188 Add color to your Visual Studio editor! Visual Basic Tools 3.4.0-beta2-19504-06+154af84a603094b52bd08b3366c4448f7481af52 Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used. Visual F# Tools 10.4 for F# 4.6 16.4.0-beta.19504.1+e3676d75d501a2df6789ad0f5ebc310bc2cee6b5 Microsoft Visual F# Tools 10.4 for F# 4.6 Visual Studio Code Debug Adapter Host Package 1.0 Interop layer for hosting Visual Studio Code debug adapters in Visual Studio Visual Studio Container Tools Extensions (Preview) 1.0 View, manage, and diagnose containers within Visual Studio. Visual Studio Spell Check Everywhere VSSpellCheckEverywhere An extension that enables spell checking within any Visual Studio file editor or tool window that uses WPF text boxes. https://GitHub.com/EWSoftware/VSSpellChecker Visual Studio Spell Checker VSSpellChecker An editor extension that checks the spelling of comments, strings, and plain text as you type or interactively with tool windows. https://GitHub.com/EWSoftware/VSSpellChecker Visual Studio Tools for CMake 1.0 Visual Studio Tools for CMake Visual Studio Tools for CMake 1.0 Visual Studio Tools for CMake Visual Studio Tools for Containers 1.0 Visual Studio Tools for Containers Visual Studio Tools for Unity 4.4.1.0 Visual Studio Tools for Unity VisualStudio.DeviceLog 1.0 Information about my package VisualStudio.Mac 1.0 Mac Extension for Visual Studio VSColorOutput 2.6.7 Color output for build and debug windows - https://mike-ward.net/vscoloroutput Xamarin 16.4.000.269 (d16-4@9202c30) Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android. Xamarin Designer 16.4.0.289 (remotes/origin/d16-4@e3c99110c) Visual Studio extension to enable Xamarin Designer tools in Visual Studio. Xamarin Templates 16.4.15 (51cdaa7) Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms. Xamarin.Android SDK 10.1.0.1 (d16-4/ee1dfb6) Xamarin.Android Reference Assemblies and MSBuild support. Mono: 5281037 Java.Interop: xamarin/java.interop/d16-4@35b08ba ProGuard: xamarin/proguard/master@905836d SQLite: xamarin/sqlite/3.28.0@46204c4 Xamarin.Android Tools: xamarin/xamarin-android-tools/master@9f4ed4b Xamarin.iOS and Xamarin.Mac SDK 13.8.1.1 (2e360ee) Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support. ```
damphyr commented 5 years ago

@bddckr Just to make 100% sure: You are doing it using a Directory.Build.props file for the settings and not within the .csproj file, right?

bddckr commented 5 years ago

Yes, exactly that! The csproj files have no output related override in them.

damphyr commented 5 years ago

Yes, exactly that! The csproj files have no output related override in them.

Could you use the XamAndroidOoB.zip and add

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

to the file there and see if it works as expected?

bddckr commented 5 years ago

I see the issue now.

(AppendTargetFrameworkToOutputPath doesn't matter here as far as I was able to confirm.)

Doing some logging in a Directory.Build.targets file (note .targets):

<Project InitialTargets="ValidateProjectProperties">
  <Target Name="ValidateProjectProperties">
    <Warning Text="BaseOutputPath: $(BaseOutputPath)" />
    <Warning Text="BaseIntermediateOutputPath: $(BaseIntermediateOutputPath)" />
    <Warning Text="OutputPath: $(OutputPath)" />
    <Warning Text="IntermediateOutputPath: $(IntermediateOutputPath)" />
  </Target>
</Project>

I can see that BaseOutputPath and BaseIntermediateOutputPath are empty when referenced in the .csproj file.

If I remove the properties OutputPath and IntermediateOutputPath from the csproj, then MSBuild complains about OutputPath being empty and IntermediateOutputPath has a (default?) value of obj\Release\90.

One workaround is therefore what I did, which is specifying the non-base properties in the Directory.Build.props file, too:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
      <BaseOutputPath>$(MSBuildThisFileDirectory)..\out\build\$(MSBuildProjectName)\</BaseOutputPath>
      <BaseIntermediateOutputPath>$(BaseOutputPath)</BaseIntermediateOutputPath>
      <OutputPath>$(BaseOutputPath)$(AssemblyName)\bin\$(Configuration)</OutputPath>
      <IntermediateOutputPath>$(BaseIntermediateOutputPath)$(AssemblyName)\obj\$(Configuration)</IntermediateOutputPath>
  </PropertyGroup>
</Project>

(Note: I fixed the trailing slashes to be consistently defined on each property and removed the slash at the usage site of them, but this doesn't change the outcome at all - I tested it.)


Adding a class library to the same project without my workaround and yes indeed I can confirm an (SDK-style) csproj has no issue with BaseOutputPath & BaseIntermediateOutputPath only being in the Directory.Build.props. Both properties are not empty when used in the csproj file, thus don't give the issue.

I didn't test whether this is the case for old csproj style projects in general or specific to Xamarin projects.

bddckr commented 5 years ago

Something is normally setting the output properties derived from the base ones, but in this case it's not happening.

mesheets commented 4 years ago

It appears to me that these paths are not getting set as expected for UWP projects, either.

Directory.Build.props ```xml $(MSBuildThisFileDirectory)_Build\ $(RootOutputPath)bin\$(Configuration)\$(MSBuildProjectName)\ $(BaseOutputPath) $(RootOutputPath)obj\$(MSBuildProjectName)\ $(BaseIntermediateOutputPath)$(Configuration)\ ```

In a side-by-side comparison of building a pretty much "stock" Xamarin app template, there are issues even when explicitly specifying each of the following:

.NET Standard Library Directories created without Directory.Build.props

Directories created with workaround Directory.Build.props

Xamarin.Android Project Directories created without Directory.Build.props

Directories created with workaround Directory.Build.props

UWP Directories created without Directory.Build.props

Directories created with workaround Directory.Build.props

System Info Microsoft Visual Studio Enterprise 2019 Version 16.5.2 VisualStudio.16.Release/16.5.2+29926.136 Microsoft .NET Framework Version 4.8.03752 Installed Version: Enterprise Visual C++ 2019 00433-90102-65598-AA554 Microsoft Visual C++ 2019 ADL Tools Service Provider 1.0 This package contains services used by Data Lake tools ASA Service Provider 1.0 ASP.NET and Web Tools 2019 16.5.236.49856 ASP.NET and Web Tools 2019 ASP.NET Web Frameworks and Tools 2019 16.5.236.49856 For additional information, visit https://www.asp.net/ Azure App Service Tools v3.0.0 16.5.236.49856 Azure App Service Tools v3.0.0 Azure Data Lake Node 1.0 This package contains the Data Lake integration nodes for Server Explorer. Azure Data Lake Tools for Visual Studio 2.4.5000.0 Microsoft Azure Data Lake Tools for Visual Studio Azure Functions and Web Jobs Tools 16.5.236.49856 Azure Functions and Web Jobs Tools Azure Stream Analytics Tools for Visual Studio 2.4.5000.0 Microsoft Azure Stream Analytics Tools for Visual Studio C# Tools 3.5.0-beta4-20153-05+20b9af913f1b8ce0a62f72bea9e75e4aa3cf6b0e C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used. CodeMaid 11.1.209 CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding. Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools. Extensibility Message Bus 1.2.0 (d16-2@8b56e20) Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration. GitHub.VisualStudio 2.10.8.8132 A Visual Studio Extension that brings the GitHub Flow into Visual Studio. IntelliCode Extension 1.0 IntelliCode Visual Studio Extension Detailed Info Markdown Editor 1.12.253 A full featured Markdown editor with live preview and syntax highlighting. Supports GitHub flavored Markdown. Microsoft Azure HDInsight Azure Node 2.4.5000.0 HDInsight Node under Azure Node Microsoft Azure Hive Query Language Service 2.4.5000.0 Language service for Hive query Microsoft Azure Stream Analytics Language Service 2.4.5000.0 Language service for Azure Stream Analytics Microsoft Azure Stream Analytics Node 1.0 Azure Stream Analytics Node under Azure Node Microsoft Azure Tools 2.9 Microsoft Azure Tools for Microsoft Visual Studio 2019 - v2.9.30207.1 Microsoft Continuous Delivery Tools for Visual Studio 0.4 Simplifying the configuration of Azure DevOps pipelines from within the Visual Studio IDE. Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines Microsoft Library Manager 2.1.25+gdacdb9b7a1 Install client-side libraries easily to any web project Microsoft MI-Based Debugger 1.0 Provides support for connecting Visual Studio to MI compatible debuggers Microsoft Visual C++ Wizards 1.0 Microsoft Visual C++ Wizards Microsoft Visual Studio Tools for Containers 1.1 Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container. Microsoft Visual Studio VC Package 1.0 Microsoft Visual Studio VC Package Mono Debugging for Visual Studio 16.5.514 (c4f36a9) Support for debugging Mono processes with Visual Studio. Multilingual App Toolkit 4.0 Multilingual App Toolkit helps you localize your Windows Store app by providing file management, pseudo and machine translation, translation editor, and build integration. http://aka.ms/matinstall NuGet Package Manager 5.5.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/ Open Command Line 2.4.226 2.4.226 PowerShell Pro Tools for Visual Studio 1.0 A set of tools for developing and debugging PowerShell scripts and modules in Visual Studio. Productivity Power Tools 2017/2019 16.0 Installs the individual extensions of Productivity Power Tools 2017/2019 ProjectServicesPackage Extension 1.0 ProjectServicesPackage Visual Studio Extension Detailed Info Snapshot Debugging Extension 1.0 Snapshot Debugging Visual Studio Extension Detailed Info SQL Server Data Tools 16.0.62003.05170 Microsoft SQL Server Data Tools Test Adapter for Boost.Test 1.0 Enables Visual Studio's testing tools with unit tests written for Boost.Test. The use terms and Third Party Notices are available in the extension installation directory. Test Adapter for Google Test 1.0 Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory. ToolWindowHostedEditor 1.0 Hosting json editor into a tool window TypeScript Tools 16.0.20225.2001 TypeScript Tools for Microsoft Visual Studio UnoPlatformPackage Extension 1.0 UnoPlatformPackage Visual Studio Extension Detailed Info Visual Basic Tools 3.5.0-beta4-20153-05+20b9af913f1b8ce0a62f72bea9e75e4aa3cf6b0e Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used. Visual C++ for Cross Platform Mobile Development (Android) 16.0.29814.53 Visual C++ for Cross Platform Mobile Development (Android) Visual C++ for Cross Platform Mobile Development (iOS) 16.0.29814.53 Visual C++ for Cross Platform Mobile Development (iOS) Visual C++ for Linux Development 1.0.9.29814 Visual C++ for Linux Development Visual F# Tools 10.8.0.0 for F# 4.7 16.5.0-beta.20104.8+7c4de19faf36647c1ef700e655a52350840c6f03 Microsoft Visual F# Tools 10.8.0.0 for F# 4.7 Visual Studio Code Debug Adapter Host Package 1.0 Interop layer for hosting Visual Studio Code debug adapters in Visual Studio Visual Studio Container Tools Extensions (Preview) 1.0 View, manage, and diagnose containers within Visual Studio. Visual Studio Tools for CMake 1.0 Visual Studio Tools for CMake Visual Studio Tools for Containers 1.0 Visual Studio Tools for Containers VisualStudio.DeviceLog 1.0 Information about my package VisualStudio.Foo 1.0 Information about my package VisualStudio.Mac 1.0 Mac Extension for Visual Studio Xamarin 16.5.000.528 (d16-5@2b54082) Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android. Xamarin Designer 16.5.0.470 (remotes/origin/d16-5@681de3fd6) Visual Studio extension to enable Xamarin Designer tools in Visual Studio. Xamarin Templates 16.5.49 (0904f41) Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms. Xamarin.Android SDK 10.2.0.100 (d16-5/988c811) Xamarin.Android Reference Assemblies and MSBuild support. Mono: c0c5c78 Java.Interop: xamarin/java.interop/d16-5@fc18c54 ProGuard: xamarin/proguard/master@905836d SQLite: xamarin/sqlite/3.28.0@46204c4 Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-5@9f4ed4b Xamarin.iOS and Xamarin.Mac SDK 13.16.0.11 (aa73e41) Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.
jpobst commented 6 months ago

With support for Classic Xamarin.Android ended May 1st, 2024, this issue is likely no longer relevant.

If this still persists in .NET 8+, please open a new issue with updated information based on net8.0-android or greater. Please include a link to this issue for context.