Reputation: 9173
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:
Is it a good thing to have the same assembly name for iOS and Android project?
Why this tags did not work with default assembly names?
Upvotes: 2
Views: 3141
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