SuperAPI AI 工具集

write-script-csharp

写作与研究

查看项目

更新于 10-16 14:37

技能介绍

用途:在 Windmill 中编写 C# 脚本。脚本放入一个文件夹,编写后应向用户说明可用命令。

主要能力与用法:

  • wmill script preview <script_path>:迭代本地脚本时默认使用,直接运行本地文件而不部署。
  • wmill script run <path>:仅当用户明确要运行已部署版本时使用。
  • wmill generate-metadata:重新生成本地 .script.yaml(输入 schema)与 .lock(解析后的依赖),刷新 wmill-lock.yaml 中的内容哈希;仅写入本地文件,不算部署。修改导入或 main 参数后应运行,避免 git-sync 与 CI 出现多余差异。无路径参数时只重算哈希漂移的项;可用 --dry-run 查看、用路径参数或 --strict-folder-boundaries 缩小范围;仅需刷新哈希时用 wmill generate-metadata rehash。
  • 部署:经 git push 或 wmill sync push(取决于仓库接线方式)。仅在用户明确要求 deploy、publish、push 时执行,不要说 run、try、test 就部署。
  • 资源类型可用 wmill resource-type list --schema 发现;依赖库自动安装,不展示安装步骤。

C# 脚本结构:必须包含类内的 public static Main 方法,类名无关,方法需 public static,返回类型可为 object 或具体类型。NuGet 包在顶部用 #r 指令声明,例如 #r "nuget: Newtonsoft.Json, 13.0.3"。

返回与流程:脚本可返回任意 JSON 可序列化值(SQL 脚本返回查询行),后续流程步骤通过 results.step_id 使用。

输入:脚本输入即参数;凭据与配置通过资源类型参数传入,不要硬编码或读环境变量。无现成资源类型时,用自定义类型 c_<name> 承载连接字段,密钥放在资源引用的变量中。

限制与注意事项:preview 会执行代码并可能产生副作用;generate-metadata 只写本地文件但会重新解析依赖,可能提升未固定版本,运行后应 diff .lock 并告知版本变化。导入会传播,修改被导入的共享模块会标记所有导入者为过期。资源类型需实例同步 Hub 类型才有;预处理器脚本用 TypeScript 或 Python,函数名为 preprocessor,接收 event 参数。