使用nektos/act运行GitHub Action时nuget命令无法执行求助
问题原因与解决办法
核心原因
nuget/setup-nuget@v1.1.1 默认安装的是Windows平台的nuget.exe,在Linux环境(ubuntu-latest)下必须依赖Mono才能运行。但你用act本地测试时,默认容器镜像未预装Mono,因此触发mono: not found错误,导致NuGet命令无法执行。
可行解决办法(任选其一)
方法一:改用dotnet restore(推荐)
对于.NET项目,直接使用dotnet CLI执行还原操作更简便,无需单独安装NuGet。GitHub托管 runner 和act容器通常都预装了.NET SDK:
- run: dotnet restore MyProject.csproj --packages ./mydirectory/output
方法二:提前安装Mono依赖
如果必须使用nuget命令,需在安装NuGet前先部署Mono环境:
- name: Install Mono run: sudo apt-get update && sudo apt-get install -y mono-complete - name: 'Nuget Tool Installer' uses: nuget/setup-nuget@v1.1.1 - run: nuget restore MyProject.csproj -PackagesDirectory ./mydirectory/output
方法三:安装Linux原生NuGet CLI
跳过nuget/setup-nuget,直接在Linux环境安装原生NuGet工具:
- name: Install NuGet CLI run: | wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe chmod +x nuget.exe sudo mv nuget.exe /usr/local/bin/nuget - run: nuget restore MyProject.csproj -PackagesDirectory ./mydirectory/output
内容的提问来源于stack exchange,提问作者delucaezequiel
相关产品推荐
相关产品推荐

