如果使用mac,是否可以开发跨平台软件包?

问题描述:

我正在开发一款应该瞄准跨平台的软件包, 当瞄准框架net40net45x时,我无法构建项目,因为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> 
+0

无法使用.NET 4.0或.NET 4.5跨平台。 –

当你的目标netstandard1.2或更低,根据the documentation已经在net45net451您的库运行。这是.NET标准的目的。无需添加net45net451

然而,如果你确实需要netstandard1.3(由net46或更高版本支持),并希望针对net40另外(这是不以任何.NET支持的标准),没有办法对其进行编译.NET的核心基础环境(你的Mac)。在这种情况下,Windows是唯一的选择,因为没有用于Mac的.NET Framework SDK(net名字符号暗示)。