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

C# 如果我使用mac,是否可以开发跨平台软件包?,c#,.net,nuget,.net-core,.net-framework-version,C#,.net,Nuget,.net Core,.net Framework Version,我正在开发一个针对跨平台的软件包, 当针对框架net40或net45x时,我无法构建项目,因为我的mac上没有安装net40sdk 有没有可能在mac上开发跨平台库,或者我需要windows来实现这一点 我的csproj文件 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <PackageId>ID</PackageId> <VersionSuffix>$(Ver

我正在开发一个针对跨平台的软件包, 当针对框架
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>

身份证件
$(VersionSuffix)
net45;net451;netstandard1.3

当您以
netstandard1.2
或更低版本为目标时,您的库已根据运行在
net45
net451
上。这就是.NET标准的目的。无需添加
net45
net451


但是,如果您确实需要
netstandard1.3
(由
net46
或更高版本支持),并且希望另外针对
net40
(任何.NET标准都不支持),则无法在基于.NET核心的环境(您的Mac)上编译它。在这种情况下,Windows是唯一的选项,因为没有适用于Mac的.NET Framework SDK(这是
NET
名字所暗示的)。

当您的目标是
netstandard1.2
或更低版本时,您的库已经在
net45
net451
上运行。这就是.NET标准的目的。无需添加
net45
net451


但是,如果您确实需要
netstandard1.3
(由
net46
或更高版本支持),并且希望另外针对
net40
(任何.NET标准都不支持),则无法在基于.NET核心的环境(您的Mac)上编译它。在这种情况下,Windows是唯一的选项,因为没有适用于Mac的.NET Framework SDK(这是
NET
绰号所暗示的)。

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