我只是在Mac上玩Visual Studio 2017。我创建了一个运行良好的小型可可应用程序。现在,我想引用另一个基于.net Standard 2.0并使用AWS开发工具包的库。
使用现代Xamarin.Mac不能正常工作,因为AWSSDK
引入了PCLCrypto
和Xamarin.iOS
,因此我将项目切换到了完整的框架。
现在,当我打开项目属性时,Xamarin.Mac Full框架的版本级别报告为.net 4.5.1,它与.net Standard 2.0不兼容
这是应该的吗,并且可以定位到更高的版本吗?
我找到了一种变通办法,它显示了未引用程序包的一些错误,并且需要一些难看的管道。这是我所做的:
步骤1:
从<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
的第一个<TargetFrameworkIdentifier>Xamarin.Mac</TargetFrameworkIdentifier>
中删除了PropertyGroup
和.csproj
行
第2步:
在.csproj
的第一个PropertyGroup
中添加了以下内容:
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<UseXamMacFullFramework>True</UseXamMacFullFramework>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
第3步:
在VS 2017中重新加载了项目
步骤4:添加了我的.net标准库及其依赖的所有Nuget软件包。
这很丑陋,它将显示一些System.*
引用在VS 2017中不存在,但是会编译并运行。它似乎也没有正确引入传递性依赖关系,因此您必须自己将每个依赖关系添加到主项目中。
这很丑,但至少对我有用。我希望有更好的方法...