【发布时间】:2018-06-27 11:01:27
【问题描述】:
当我尝试为当前项目创建新的 XAML 命名空间时遇到以下编译错误
Error: Failed to resolve assembly: 'TodoQ.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
我一直在使用我自己和外部项目中的自定义控件,编译器从来没有抱怨过。这是 XAML(省略号是我决定省略的其他一些标准命名空间):
<ContentPage xmlns:util="clr-namespace:TodoQ.Utilities"
xmlns:custom="clr-namespace:TodoQ.Controls"
xmlns:swipecards="clr-namespace:SwipeCards.Controls;assembly=SwipeCards.Controls"
... x:Class="TodoQ.Views.ItemsPage" Title="{Binding Title}" x:Name="BrowseItemsPage">
如您所见,我有两个命名空间,它们引用我当前的 Xamarin.Forms 项目。 custom 命名空间有效,但如果我尝试使用 util 我会收到上述错误。另一方面,swipecards 命名空间完美运行。
我尝试过指定程序集,例如 xmlns:util="clr-namespace:TodoQ.Utilities;assembly=TodoQ",但似乎没有什么不同。
到目前为止,我对util 的唯一用途是尝试添加转换器:
<Grid.Resources>
<util:IsZero x:Key="IsZero" />
</Grid.Resources>
有人知道我做错了什么吗?我几乎把我的头发扯掉了。使用 WPF 版本的 XAML,事情就简单多了,一切似乎都在那里工作。
编辑:这是所要求的实用程序文件:
using System;
using System.Globalization;
using Xamarin.Forms;
namespace TodoQ.Utilities
{
public class IsZero : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
CultureInfo language)
{
return ((int)value) == 0;
}
public object ConvertBack(object value,
Type targetType,
object parameter,
CultureInfo language)
{
throw new NotImplementedException();
}
}
}
【问题讨论】:
-
粘贴你的命名空间和你的实用程序文件的类名,即文件的顶部,如果文件很小,则粘贴整个文件
-
@TheGeneral 查看我的编辑,谢谢。
-
也许您应该将程序集名称更改为
TodoQ.exe?
标签: c# xaml xamarin xamarin.forms