【问题标题】:Is it possible to develop cross platform packages if am using mac?如果使用mac,是否可以开发跨平台包?
【发布时间】:2017-06-04 05:25:54
【问题描述】:

我正在开发一个针对跨平台的软件包, 当针对框架net40net45x 时,我无法构建项目,因为我的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>

【问题讨论】:

  • 没有办法跨平台使用.NET 4.0或.NET 4.5。

标签: c# .net nuget .net-core .net-framework-version


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    相关资源
    最近更新 更多