如果使用mac,是否可以开发跨平台软件包?
问题描述:
我正在开发一款应该瞄准跨平台的软件包, 当瞄准框架net40
或net45x
时,我无法构建项目,因为net40
sdk没有安装在我的mac上。如果使用mac,是否可以开发跨平台软件包?
是否有可能在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>
答
当你的目标netstandard1.2
或更低,根据the documentation已经在net45
和net451
您的库运行。这是.NET标准的目的。无需添加net45
和net451
。
然而,如果你确实需要netstandard1.3
(由net46
或更高版本支持),并希望针对net40
另外(这是不以任何.NET支持的标准),没有办法对其进行编译.NET的核心基础环境(你的Mac)。在这种情况下,Windows是唯一的选择,因为没有用于Mac的.NET Framework SDK(net
名字符号暗示)。
无法使用.NET 4.0或.NET 4.5跨平台。 –