Bob5421
Bob5421

Reputation: 9173

Why do I need to change assembly names in my Xamarin.Forms app?

I am wrote this XAML code in an Xamarin.Forms app (multiplatform):

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:local="clr-namespace:MyNameSpace;assembly=MyAssemblyName"
            Padding="0,20,0,0">

<TabbedPage.Children>

    <local:Page1 />
    <local:Page2 />
...

MyNameSpace is the namespace I choose when creating the project, and MyAssemblyName is the project name.

Page1 and Page2 are others XAML/cs pages.

This does not work. I had errors on Xamarin preview and at execution. Those errors said my assembly name is not found or something like that.

I have checked options in iOS and Android sub projects. Those options where auto generated at creation.

I see that assembly names are: MyAssemblyName.iOS and MyAssemblyName.Droid
If I rename both to MyAssemblyName, my project works.

My questions are:

Upvotes: 2

Views: 3141

Answers (1)

Luccas Clezar
Luccas Clezar

Reputation: 1074

You are probably in a "Shared Project". If this is the case, each platform you have in your solution has an assembly, but the Shared Project (the one you write most of the code) doesn't.

The solution for this error is to simply remove the assembly=MyAssemblyName from the xmlns:local string. It should be xmlns:local="clr-namespace:MyNameSpace;"

Upvotes: 4

Related Questions