Skip to content

加密软件环境下的 AI 开发注意事项

内容类型:方法说明难度:进阶适合:在 E-SafeNet、Cobra DocGuard 或类似受控目录中开发的人阅读时间:约 12 分钟前置:能使用 Git diff 和基本构建命令

企业加密或 DLP 软件可能根据目录、后缀、进程和策略处理源码、构建中间文件或 Office 文档。真正的问题不是“所有项目都必须绕开正式后缀”,而是要先判断当前项目是不是已知受控环境,再复用已经验证有效的处理路径。

1. 先区分普通项目和已知受控项目

普通 Git 工作区

如果没有出现受控/加密证据,正常使用窄范围编辑、Git diff、回读和按影响验证即可。

不建议为了“预防加密”让每一个小修改都统一经历:

text
正式文件 → .work → 再回写 → 再构建

这种流程会增加 IO、临时文件和误操作成本,也容易让 Fast Lane 重新变重。

已知 E-SafeNet / DLP 项目

出现下面任一类稳定证据后,可把项目标记为已知受控环境:

  • 保存后源码、XAML、DOCX 被重新包装或普通工具读不到;
  • MSB3541Null character in pathCS2015 等与受控文件相关的稳定签名;
  • obj/*.csproj.FileListAbsolute.txt 出现受保护路径污染;
  • Visual Studio / Word 能打开,但普通命令、SDK 或 ZIP/DOCX 解析器读取异常;
  • 项目已经在 .agent-memory/pinned.md 记录 E-SafeNet/Cobra DocGuard 事实。

一旦已经确认,不要每个任务重新“发现”一遍。

2. V10 对已知 E-SafeNet 的默认策略

text
识别 affected projects
→ 主构建前一次性清 affected projects 的 FileListAbsolute
→ 构建一次
→ 若仍命中同一 E-SafeNet 签名,再一次性清 affected obj + restore/build
→ 仍失败再使用仓库外 artifacts / 环境阻塞结论

不要这样做:

text
删 Contracts obj → build
删 Application obj → build
删 Infrastructure obj → build
删 App obj → build

同一环境问题不应该按项目串行撞四五次。

如果使用 V10 Skill,优先:

powershell
& "$SKILL_ROOT\scripts\HostDev.cmd" verify -RepoRoot .

HostDev verify 会结合影响范围和已知 E-SafeNet 事实选择更窄的验证路径。

3. 什么情况下才需要工作副本或 RecoverySnapshot

工作副本不是普通项目的全局强制规则,但在下面情况仍然有价值:

  • 当前受控软件会在保存瞬间修改正式后缀文件;
  • 文件曾出现乱码、空文件、异常缩短或无法回读;
  • 用户明确要求保留字节级恢复点;
  • DOCX、正式交付文档或高价值配置要在受保护目录中写回;
  • 当前环境已经证明直接编辑不稳定。

此时应优先:

text
项目外 RecoverySnapshot
→ 仓库外或非受控临时副本
→ 编辑与验证
→ 最后一步写回正式位置
→ 回读确认

RecoverySnapshot 的目的是真正可恢复,不是机械制造 .bak 文件。

4. DOCX / Word / WPS 的特殊处理

受保护目录里的 DOCX 可能被包装后不再是普通 ZIP 容器。典型表现是 Word/WPS 能打开,但通用 DOCX 解析器提示不是 ZIP 或结构异常。

已知受保护项目中,推荐:

  1. 先把 DOCX 复制到仓库外临时目录;
  2. 在临时副本完成文字、样式、目录、图表和结构验证;
  3. 需要 Word/WPS 域更新时在临时副本完成;
  4. 最后通过 Word/WPS 或受控允许的方式写回项目目录;
  5. 写回后至少确认文件可打开、关键章节存在、大小合理。

不要在项目目录里做完大量修改后才第一次检查文件是否已被保护。

5. 构建污染和源码损坏不是一回事

现象优先判断
普通 C# 编译错误、缺类型、参数不匹配代码问题,直接修代码
MSB3541、Null character、异常 FileListAbsolute先按 E-SafeNet 构建污染处理
XAML 第一行第一列异常、重复临时 XAML 被编译检查临时文件和受控写入
文件突然变空、乱码、hash/大小异常先恢复文件,不继续叠补丁

普通编译错误不能触发整套 E-SafeNet 恢复链;同样,E-SafeNet 环境错误也不能被当成“代码没写对”。

6. 临时文件不要落进项目编译范围

避免在项目目录中留下可能被 SDK/WPF 自动纳入构建的副本:

text
MainWindow.copy.xaml
App.tmp.xaml
*.linksrc
*.backup.cs
临时 App.xaml
临时 ResourceDictionary.xaml

需要临时文件时优先放到项目外工作目录。任务结束后清理。

7. 一次失败后的处理

如果 HostDev.cmd、PowerShell 或验证入口第一次因为本机策略/脚本编码失败:

  1. 本任务标记 ToolingUnavailable
  2. 不在用户任务里反复 Get-Help、读 Skill 脚本、调工具本身;
  3. 退回人工 V0–V3 精准验证;
  4. 把 Skill 工具修复放到独立维护任务。

工具故障不能把一个两分钟业务修改拖成半小时 Skill 调试。

8. 什么时候必须停止继续写入

出现以下情况应先保护现场和恢复:

  • 正式文件乱码、变空、异常缩短;
  • 刚写入的关键片段读不回来;
  • Git diff 无法解释;
  • 文件类型从正常文本/ZIP 变成未知包装;
  • 同一文件连续写回结果不一致;
  • 恢复点无法建立而当前写入风险已知很高。

停止写入不等于停止分析。可以继续做只读调查、Git 对比、日志分析和方案判断。

9. 最短规则

text
没有受控证据
→ 正常窄 patch + diff + 精准验证

已知 E-SafeNet
→ 复用 pinned fact
→ affected-project 一次性预清
→ HostDev verify
→ 必要时仓库外 artifacts

已知受保护 DOCX
→ 仓库外编辑/验证
→ 最后写回

文件损坏
→ 先恢复,不继续叠补丁

下一步

看 V10 Skill 说明 看质量门

别来无恙 · C# 上位机 AI 实战站 · 从零到交付 · QQ 群:1016188499