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

如何在发布.NET 4.7.2 SDK风格项目时使用--no-restore参数

解决方案

这个错误的核心原因是:restore步骤没有生成针对net472/win-x64的资产信息,而发布时指定了--arch x64(对应runtime identifier win-x64)且用了--no-restore,导致发布过程找不到匹配的目标资产。

你有两种可行的解决方式:

方式一:在restore步骤指定runtime identifier

修改Azure DevOps流水线的restore任务,添加--runtime win-x64参数,让restore过程生成包含该runtime的资产文件:

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: 'DotnetApp.sln'
    feedsToUse: 'select'
    arguments: '--runtime win-x64'

这样restore会生成包含net472/win-x64的project.assets.json,后续发布用--no-restore就能正常找到对应目标了。

方式二:在项目文件中预先声明RuntimeIdentifiers

直接修改你的.NET 4.7.2项目文件,添加RuntimeIdentifiers属性,指定需要的runtime:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
  </PropertyGroup>
</Project>

这种方式下,默认的restore步骤会自动包含声明的runtime对应的资产信息,不需要修改流水线的restore参数,发布时用--no-restore也能正常执行。

两种方式任选其一即可,本质都是让restore过程生成包含win-x64的资产文件,匹配发布时指定的架构参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:13:15