我正在开发一个应该以跨平台为目标的软件包,
在定位框架net40
或net45x
时,我无法构建项目,因为我的mac上未安装net40
sdk。
是否有可能在Mac上开发跨平台库,或者我是否需要Windows才能这样做?
我的csproj文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>ID</PackageId>
<VersionSuffix>$(VersionSuffix)</VersionSuffix>
<TargetFrameworks>net45;net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net451' ">
<Reference Include="System"/>
<Reference Include="System.Data"/>
<Reference Include="System.Xml"/>
<Reference Include="System.Xml.Linq"/>
<Reference Include="Microsoft.CSharp"/>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0"/>
<PackageReference Include="ReflectionBridge" Version="0.0.12"/>
</ItemGroup>
</Project>
答案 0 :(得分:0)
当您定位netstandard1.2
或更低时,您的资料库已根据the documentation在net45
和net451
上运行。这就是.NET标准的目的。无需添加net45
和net451
。
但是,如果确实需要netstandard1.3
(net46
或更高版本支持)并且想要另外定位net40
(任何.NET标准都不支持),那么无法在基于.NET Core的环境(您的Mac)上编译它。在这种情况下,Windows是唯一的选择,因为没有适用于Mac的.NET Framework SDK(net
名字的含义)。