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

.NET Core 5.0项目使用Obfuscar代码混淆报错码123如何解决?

报错原因排查
  • 生成后事件使用了全角双引号,Windows命令行无法识别全角符号,直接触发路径语法错误。你代码中“$(Obfuscar)”所用的引号为中文全角格式,不符合命令行语法要求。
  • 未指定正确的工作目录和配置文件路径,生成后事件默认工作目录为项目根目录,若obfuscar.xml存放位置不匹配、或者和配置中InPath的路径逻辑冲突,会导致文件找不到。
  • 配置中指定的输出目录$(InPath)\Obfuscar若不存在,Obfuscar运行时会直接报错。
  • 日志中显示的Nuget路径C:\Users\VVSCPP.nuget\packages\obfuscar\2.2.31\build..\tools\Obfuscar.Console.exe存在路径拼接错误(build后缺少反斜杠),本质是全角引号导致MSBuild解析变量异常。
解决方案
  1. 首先将生成后事件的全角引号替换为半角引号,同时补充目录创建、工作目录切换逻辑,修改后的生成后事件代码如下:
if $(ConfigurationName) == Release (
    rem 创建混淆输出目录,避免目录不存在报错
    if not exist "$(TargetDir)Obfuscar" md "$(TargetDir)Obfuscar"
    rem 切换工作目录到编译输出路径,和obfuscar配置中的InPath对应
    cd "$(TargetDir)"
    rem 执行混淆命令,明确指定obfuscar.xml的路径(下方为配置文件存放在项目根目录的写法)
    "$(Obfuscar)" "$(ProjectDir)obfuscar.xml"
)
  1. 确认obfuscar.xml的存放位置,如果你把配置文件放在编译输出目录,将上述命令中的$(ProjectDir)obfuscar.xml替换为$(TargetDir)obfuscar.xml即可。
  2. 若修改后仍出现路径解析问题,可以直接替换$(Obfuscar)变量为Obfuscar.Console.exe的绝对路径测试,确认变量解析是否正常。
  3. 路径问题解决后如果混淆过程报错,可以临时关闭UseUnicodeNames配置排查是否是字符编码导致的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:48:03