Updating component references to NuGet
Important
The Component Store has been discontinued as of May 15, 2018 (this closure was originally announced in November 2017).
Xamarin Components are no longer supported in Visual Studio, and should be replaced by NuGet packages. Follow the instructions below to manually remove component references from your projects.
Refer to these instructions for adding NuGet packages on Windows or Mac.
A list of popular Xamarin plugins and libraries is available to help find alternatives to components which are unavailable as NuGet packages.
Manually removing component references
The 15.6 release of Visual Studio and 7.4 release of Visual Studio for Mac no longer support components in your project.
If you load a project into Visual Studio, the following dialog is displayed, explaining that you must remove any components from your project manually:
To remove a component from your project:
Open the .csproj file. To do this, right-click on the project name and select Unload Project.
Right-click again on the unloaded project and select Edit {your-project-name}.csproj.
Find any references in the file to
XamarinComponentReference
. It should look similar to the following example:<ItemGroup> <XamarinComponentReference Include="advancedcolorpicker"> <Version>2.0.1</Version> <Visible>False</Visible> </XamarinComponentReference> <XamarinComponentReference Include="gunmetaltheme"> <Version>1.4.1</Version> <Visible>False</Visible> </XamarinComponentReference> <XamarinComponentReference Include="signature-pad"> <Version>2.2.0</Version> <Visible>False</Visible> </XamarinComponentReference> </ItemGroup>
Remove the references to
XamarinComponentReference
and save the file. In the example above, it's safe to remove the entireItemGroup
.Once the file has been saved, right-click on the project name and select Reload Project.
Repeat the steps above for each project in your solution.
Warning
The following instructions only work with older versions of Visual Studio. The Components node is no longer available in the current releases of Visual Studio 2017 or Visual Studio for Mac.
The following sections explain how to update existing Xamarin solutions to change component references to NuGet packages.
Most components fall into one of the above categories. If you are using a component that does not appear to have an equivalent NuGet package, read the components without a NuGet migration path section below.
Components that contain NuGet packages
Many components already contain NuGet packages, and the migration path is simply to delete the component reference.
You can determine whether the component already includes a NuGet package by double-clicking on the component in the solution:
The Packages tab will list any NuGet packages included in the component:
Note that the Assemblies tab will be empty:
Updating the Solution
To update your solution, delete the Component entry from the solution:
The NuGet package will remain listed in the Packages node and your app will compile and run as usual. In future, updates to this package will be performed via the NuGet update feature:
Components with NuGet replacements
If the component info page Assemblies tab contains entries as shown below, you will need to find the equivalent NuGet package manually.
Note that the Packages tab will probably be empty:
It may contain NuGet dependencies, but these can be ignored.
To confirm a replacement NuGet package exists, search on NuGet.org, using the component name, or alternatively by author.
As an example, you can find the popular sqlite-net-pcl package by searching for:
sqlite-net-pcl
– the product name.praeclarum
– the author's profile.
Updating the Solution
Once you have confirmed the component is available in NuGet, follow these steps:
Delete the component
Right click on the component in the solution and choose Remove:
This will delete the component and any references. This will break your build, until you add the equivalent NuGet package to replace it.
Add the NuGet package
Right-click on the Packages node and choose Add Packages....
Search for the NuGet replacement by name or author:
Press Add Package.
The NuGet package will be added to your project, along with any dependencies. This should fix the build. If the build continues to fail, investigate each error to see if there were API differences between the component and the NuGet package.
Components without a NuGet migration path
Don't be concerned if you don't immediately find a replacement for components used in your application. Existing components will continue to work in Visual Studio 15.5, and the Components node will appear in your solution as usual.
Future Visual Studio releases, however, will not restore or update components. This means if you open the solution on a new computer, the component will not be downloaded and installed; and the author will not be able to provide you with updates. You should plan to:
- Extract the assemblies from the component and reference them directly in your project.
- Contact the component author and ask about plans to migrate to NuGet.
- Investigate alternative NuGet packages, or seek the source code if the component is open-source.
Many component vendors are still working on migrating to NuGet, and others (including commercially available products) may be investigating alternative delivery options.