我正在将一个(工作的).netstandard 库项目转换为一个多目标项目,该项目将针对:
<targetframeworks>netstandard2.1;xamarinios10;monoandroid10.0;monoandroid12.0;</targetframeworks>
我在使用 System.ComponentModel.DataAnnotations 参考时遇到问题。特别是我得到这个错误(除了.netstandard目标之外的所有东西):
The type 'DataType' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.ComponentModel.DataAnnotations, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
经过一番搜索后,我尝试添加 System.ComponentModel.Annotations (4.7.0) nuget 包。这给出了同样的错误。
在为此的 nuget 目录中,我注意到 .dll 通常所在的位置有一个文件 ' . ' - 我不知道这是否重要 (.nuget\packages\system.componentmodel.annotations\4.7.0\ref\MonoAndroid10) - .netstandard dll 按预期存在。
我还注意到(一个单独的)Xamarin.Android 项目似乎使用了位于 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\ 中的 System.ComponentModel.DataAnnotations.dll框架\Xamarin.iOS\v1.0
我不确定 Mono.Android(或 ios 等效版本)的正确版本是否被定位,或者我必须指定特定的程序集版本,或者我是否完全走错了路?
在此先感谢,保罗。