2

我在 Xamarin.Forms 应用程序(多平台)中编写了此 XAML 代码:

<?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 是我在创建项目时选择的命名空间,MyAssemblyName 是项目名称。

Page1 和 Page2 是其他 XAML/cs 页面。

这不起作用。我在 Xamarin 预览和执行时出错。这些错误表示找不到我的程序集名称或类似的东西。

我已经检查了 iOS 和 Android 子项目中的选项。那些在创建时自动生成的选项。

我看到程序集名称是:MyAssemblyName.iOS 和 MyAssemblyName.Droid
如果我将两者都重命名为 MyAssemblyName,我的项目可以工作。

我的问题是:

  • iOS 和 Android 项目具有相同的程序集名称是一件好事吗?

  • 为什么此标签不适用于默认程序集名称?

4

1 回答 1

4

您可能处于“共享项目”中。如果是这种情况,您的解决方案中的每个平台都有一个程序集,但共享项目(您编写大部分代码的那个)没有。

此错误的解决方案是简单地assembly=MyAssemblyNamexmlns:local字符串中删除。它应该是xmlns:local="clr-namespace:MyNameSpace;"

于 2017-02-17T16:44:22.260 回答