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

使用Mono编译.cs文件时遇程序集引用缺失问题求助

解决Mono编译.NET 6/7控制台项目的程序集引用错误

先纠正最明显的命令错误

你写的编译命令mcs /out:AmazonProductCheck.cs *.cs存在参数错误:/out指定的是输出的可执行文件名,而非.cs源文件,正确写法应为:

mcs /out:AmazonProductCheck.exe *.cs

报错核心原因

mcs是Mono针对传统.NET Framework的编译器,对.NET 6/7这类现代SDK风格项目的支持有限,无法自动识别新框架下的程序集依赖,这就是你反复遇到「缺少程序集引用」错误的关键原因。

适配.NET 6/7的最优编译方案(推荐)

直接使用官方.NET SDK命令编译,完美匹配你的项目框架,步骤如下:

  1. 打开终端,进入项目根目录(包含.csproj文件的文件夹)
  2. 编译Release版本:
    dotnet build -c Release
    
    编译后的可执行文件会在bin/Release/net7.0/(若目标框架是.NET 6则为net6.0)目录下,直接运行./AmazonProductCheck即可。
  3. 若需生成独立可执行文件(无需目标机器安装.NET SDK):
    dotnet publish -c Release -r osx-x64 --self-contained true
    
    生成的文件在bin/Release/net7.0/osx-x64/publish/目录,复制该文件夹到任意Mac机器即可直接运行。

坚持用Mono编译的补救方法

如果必须使用mcs,需显式引用项目依赖的核心程序集,命令示例:

mcs /reference:System.dll /reference:System.Core.dll /reference:System.Runtime.dll /out:AmazonProductCheck.exe *.cs

注意:这种方法仅适配使用基础API的简单项目,无法兼容.NET 6/7的部分新特性。

设置定时运行

生成可执行文件后,用Mac自带的crontab配置计划任务:

  1. 编辑crontab规则:
    crontab -e
    
  2. 添加定时指令(示例:每天9点运行):
    0 9 * * * /完整路径/AmazonProductCheck
    
  3. 保存退出后规则自动生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:25:18