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

使用csc编译C# DLL,命令行执行时异常无输出如何处理

解决PowerShell加载执行DLL时异常无输出的问题

你需要修改PowerShell执行命令,添加异常捕获逻辑,在异常发生时打印详细错误信息后再退出。原命令直接调用[ns.main]::Main(),未处理任何异常,导致异常抛出时进程直接终止且无输出。

修改后的完整执行命令如下:

powershell.exe -command {
    try {
        [byte[]]$bytes = [System.IO.File]::ReadAllBytes("$($args[0]).dll")
        $assembly = [Reflection.Assembly]::Load($bytes)
        [ns.main]::Main()
    }
    catch [Exception] {
        Write-Error "执行出错:$($_.Exception.Message)"
        Write-Error "错误堆栈:$($_.Exception.StackTrace)"
        # 可选:返回非零错误码,便于外部判断执行状态
        exit 1
    }
} -args $path

修改说明:

  • 用try/catch块包裹整个执行流程,捕获所有[Exception]类型的异常
  • 通过$_.Exception获取异常对象,打印错误消息和堆栈跟踪,这两类信息是排查问题的核心依据
  • 若需要更全面的错误细节,可在catch块中补充输出其他属性:
    Write-Error "异常类型:$($_.Exception.GetType().FullName)"
    Write-Error "内部异常:$($_.Exception.InnerException?.Message)"
    

编译DLL的命令无需调整,保持原有即可:

csc.exe "/target:library" "/out:$($path).dll" "$($path).cs"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:01:29