You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MSBuild 15在Linux上构建混合项目失败求助

解决Linux上MSBuild 15构建.NET 4.6.2项目的project.json运行时错误

我来帮你搞定这个问题——在Linux上用MSBuild 15构建混合解决方案时,.NET Framework 4.6.2项目报的这个错,本质是因为.NET Framework是Windows专属框架,Linux环境下NuGet需要明确知道这个项目的目标运行时。

下面是具体的解决步骤:

  • 第一步:给project.json添加runtimes配置
    找到报错项目的project.json文件,在根节点里加入runtimes节点,具体内容如下:

    {
      // 保留你原有的其他配置
      "runtimes": {
        "win": {}
      }
    }
    

    这里的win就是告诉NuGet:这个项目是针对Windows运行时的,空对象表示不需要额外的子配置。

  • 第二步:重新执行NuGet还原
    切换到解决方案根目录或者该项目的目录下,运行还原命令让配置生效:

    # 如果你的环境直接支持nuget命令
    nuget restore YourSolutionName.sln
    # 或者通过Mono运行nuget.exe的情况
    mono nuget.exe restore YourSolutionName.sln
    # 也可以尝试用dotnet CLI(如果环境兼容)
    dotnet restore YourSolutionName.sln
    
  • 额外的优化建议
    如果你这个.NET 4.6.2项目是SDK风格的.csproj(而非旧的传统项目格式),其实可以不用修改project.json,直接在.csproj文件里配置RuntimeIdentifier更方便:

    <PropertyGroup>
      <RuntimeIdentifier>win</RuntimeIdentifier>
    </PropertyGroup>
    

    这种方式更贴合现代.NET项目的配置习惯,也不用维护额外的project.json文件。

另外要提醒你:即使构建成功,生成的.NET 4.6.2程序集依然只能在Windows环境运行,这是.NET Framework本身的平台限制,这点要心里有数。

内容的提问来源于stack exchange,提问作者DracoRSA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:18:34