我正在使用Xamarin构建一个多平台的类库。 Android项目的构建没有问题。但是,iOS项目针对各种System
类型给了我很多类似的错误:
error CS0012: The type 'System.IDisposable' is defined in an assembly that is not referenced. Consider adding a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
无论我是通过Visual Studio还是通过msbuild
在命令行中构建,都会发生这种情况。
我的.csproj具有以下框架参考和程序包参考:
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="Xamarin.iOS" />
<PackageReference Include="Common.Logging" Version="3.4.1" />
<PackageReference Include="Xamarin.Essentials" Version="0.8.0-preview" />
<PackageReference Include="Xam.Plugin.DeviceInfo" Version="4.0.0.13" />
<PackageReference Include="My.Other.Library" Version="1.0.2" />
</ItemGroup>
请注意,My.Other.Library
不是一个iOS项目。它的目标是netstandard1.4
,netstandard1.6
,netstandard2.0
和net45
。我猜这不是问题所在,因为我的Android项目也使用了相同的库,效果很好。
当前,这两个项目具有相同的代码-也就是说,它们都从共享目录编译相同的.cs
文件,除了AssemblyInfo.cs
分别存在于每个项目中。除了Android项目使用Mono.Android
而非Xamarin.iOS
之外,它们还具有相同的程序集引用。
我正在使用Mac Visual Studio Community 7.5.2。
有什么想法吗?