UAS_MES_NEW.exe(在 bin/Debug/)。FunctionCode/<模块>/ 下建 3 个文件:Xxx.cs、Xxx.Designer.cs、Xxx.resx。
cp 一个现有空模板(如 Make_SplitBoard.resx,5817 字节)即可。namespace UAS_MES_NEW.<模块>,class 继承 Form。FormBorderStyle = None、Tag = "<模块>!<类名>"、AutoScaleDimensions(8F,15F) + AutoScaleMode.Font。<Compile Include="...\Xxx.cs"><SubType>Form</SubType></Compile><Compile Include="...\Xxx.Designer.cs"><DependentUpon>Xxx.cs</DependentUpon></Compile><EmbeddedResource Include="...\Xxx.resx"><DependentUpon>Xxx.cs</DependentUpon></EmbeddedResource>CS$SYSNAVATION(sn_classname 填 模块.类名,sn_displayname 为菜单名,sn_module 为分组名,sn_caller 为权限 Caller,sn_using=1),权限在 CS$USERGROUPPOWER。运行时按 Assembly.GetExecutingAssembly().CreateInstance("UAS_MES_NEW." + sn_classname) 反射开窗。AutoSizeFormClass asc = new AutoSizeFormClass();、DataHelper dh;、DataTable dt;Load 事件:asc.controllInitializeSize(this); → dh = SystemInf.dh; → 初始化数据 → xxx.Focus();SizeChanged 事件:asc.controlAutoSize(this);OperateResult.AppendText(">>提示\n", Color.Black) / ("<<错误\n", Color.Red, 控件)(RichTextAutoBottom,含 (string,Color) 与 (string,Color,Control) 两个重载)UAS_MES_NEW.CustomControl.*)TextBoxWithIcon.SnCollectionBox(继承 EnterTextBox,额外属性 AllPower/ID/Power/Str/Str1/Str2)TextBoxWithIcon.MaCodeSearchTextBox,配 TableName/SelectField/SetValueField/FormName/ConditionButtonUtil.NormalButton(未设 NormalImage/DownImage/MoveImage 时自动取 Properties.Resources 默认图)RichText.RichTextAutoBottomPublicMethod.AutoSizeFormClass(internal,同程序集内可用)dh.ExecuteSql(sql, "select") 返回 DataTable;dh.getFieldDataByCondition(表, 字段, 条件) 返回单值。step(st_code/st_name),工序类型表 steptype(STP_CODE/STP_NAME,注意是 STP_ 前缀)。nvl、ROWNUM、DUAL)。dotnet build 卡在 NuGet restore;沙箱拦截 MSBuild.exe / csc.exe。C:\MES_NEW\mes-client(UAS_MES_YDCY 只是其中一个项目);远程 mes-client = git@repos.ubtob.net:usoft/mes-client.git(SSH,内网 10.1.81.211),分支 master,无 upstream 追踪。~/.ssh/id_rsa 带 passphrase;非交互环境下 SSH 会去读 tty 导致挂起,必须用 askpass 自动应答(OpenSSH 10.3 支持 SSH_ASKPASS_REQUIRE=force):
D=$(mktemp -d); printf '#!/bin/sh\necho "<口令>"\n' > "$D/a.sh"; chmod +x "$D/a.sh"
export SSH_ASKPASS="$D/a.sh" SSH_ASKPASS_REQUIRE=force DISPLAY=:0
git push mes-client master < /dev/null
rm -rf "$D"
备选:cp ~/.ssh/id_rsa /tmp/k && ssh-keygen -p -P "<口令>" -N "" -f /tmp/k 造无口令副本 + GIT_SSH_COMMAND="ssh -i /tmp/k -o IdentitiesOnly=yes",用完立即删除。
口令一律由用户口头提供,不落盘。
提交前务必限定路径(如 git add UAS_MES_YDCY/)——同一仓库里还有 UAS_MES_ZKLH、UAS_WinForm.sln 等并行的他人/其他改动。