对类型 'System.IConvertible' 的引用声称它是在程序集 mscorlib 中定义的
Reference to type 'System.IConvertible' claims it is defined in assembly mscorlib
每当我尝试在 iOS 框架中引用 NUNIT
数据类型时,都会收到一个编译器错误,提示找不到 IConvertible
类型
Error CS7069: Reference to type System.IConvertible' claims it is defined assembly
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', but it could not be found (CS7069) (logic)
我能够通过创建一个仅针对 iOS.
的全新 Xamarin.Forms 项目来重现这一点
创建后我立即添加了第二个 Xamarin.Forms 项目,这次是 PCL。
然后我需要添加 Xamarin.iOS 库,以便我可以引用 iOS 特定的 API,特别是照片 API。我通过导航到
来做到这一点
~/Library/Frameworks/Xamarin.iOS.framework/Versions/9.0.1.29/lib/mono/Xamarin.iOS/Xamarin.iOS.dll
最后,我向新的 PCL 项目添加了空白 class,并创建了一个本地范围的 NUNIT 字段。这是编译器错误发生的地方。在我当前的项目中,当我尝试获取 PHAssetCollection
中的照片数量时会发生这种情况,因为这是一种 NUNIT 数据类型。
using System;
namespace logic
{
public class EmptyClass
{
public EmptyClass()
{
nuint test = 5;
}
}
}
这给了我上面提到的编译器错误。我该如何解决这个问题?这对我来说已经成为一个阻碍问题,我引用了错误的 Xamarin.iOS.dll 吗?当我扫描它们时,它在 nuget 包列表中不可用,所以我无法通过 NuGet 添加它。 NuGet 只有 Xamarin.Forms.dll 可用。
更新 1
在尝试了几种不同的组合之后,我认为我有一个可行的解决方案。我没有创建 Xamarin.Forms 库,而是创建了一个普通的 iOS PCL 库。这解决了那个问题。
我不知道为什么 Xamarin.Forms 库不起作用。它不打算用于特定于平台的代码吗?
Xamarin Forms PCL 需要与平台无关。如果您有一个需要访问 Xamarin.iOS 特定参考的 NUnit 项目,那么您需要在 iOS 项目 / iOS PCL 中构建。
Xamarin.iOS.dll 只能从 iOS 相关项目中引用。
每当我尝试在 iOS 框架中引用 NUNIT
数据类型时,都会收到一个编译器错误,提示找不到 IConvertible
类型
Error CS7069: Reference to type
System.IConvertible' claims it is defined assembly
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', but it could not be found (CS7069) (logic)
我能够通过创建一个仅针对 iOS.
的全新 Xamarin.Forms 项目来重现这一点创建后我立即添加了第二个 Xamarin.Forms 项目,这次是 PCL。
然后我需要添加 Xamarin.iOS 库,以便我可以引用 iOS 特定的 API,特别是照片 API。我通过导航到
来做到这一点~/Library/Frameworks/Xamarin.iOS.framework/Versions/9.0.1.29/lib/mono/Xamarin.iOS/Xamarin.iOS.dll
最后,我向新的 PCL 项目添加了空白 class,并创建了一个本地范围的 NUNIT 字段。这是编译器错误发生的地方。在我当前的项目中,当我尝试获取 PHAssetCollection
中的照片数量时会发生这种情况,因为这是一种 NUNIT 数据类型。
using System;
namespace logic
{
public class EmptyClass
{
public EmptyClass()
{
nuint test = 5;
}
}
}
这给了我上面提到的编译器错误。我该如何解决这个问题?这对我来说已经成为一个阻碍问题,我引用了错误的 Xamarin.iOS.dll 吗?当我扫描它们时,它在 nuget 包列表中不可用,所以我无法通过 NuGet 添加它。 NuGet 只有 Xamarin.Forms.dll 可用。
更新 1
在尝试了几种不同的组合之后,我认为我有一个可行的解决方案。我没有创建 Xamarin.Forms 库,而是创建了一个普通的 iOS PCL 库。这解决了那个问题。
我不知道为什么 Xamarin.Forms 库不起作用。它不打算用于特定于平台的代码吗?
Xamarin Forms PCL 需要与平台无关。如果您有一个需要访问 Xamarin.iOS 特定参考的 NUnit 项目,那么您需要在 iOS 项目 / iOS PCL 中构建。
Xamarin.iOS.dll 只能从 iOS 相关项目中引用。