# 配置文件
提示
- 配置文件支持.xlsx、.csv、.xml、.json格式; 在开发阶段系统查找的数据文件格式顺序是: .xlsx、.csv、.xml、.json, 在发行阶段系统查找的数据文件格式顺序是: .json、.xml、.csv、xlsx。你可以使用你习惯的配置文件, 也可以多种格式的配置文件并存。
- 建议发行阶段统一采用.json的配置文件, 删除其他格式的配置文件。
- 在配置文件的公式里或Ligg Shell使用配置文件, 可以不用写后缀(建议), 如果写后缀的话就会精确查找该格式的配置文件。
- 如果以.xlsx、.csv作为配置文件, 可以表达Entity/Table格式的数据,如果更复杂的格式, 就需要用到.xml、.json格式, 不过到目前为止, 还没有发生这样的需求。
- 框架下可以容纳多个Application, 如IT运维工具箱(code: OrpTk)、IT开发工具箱(code: DevTk)、企业网盘(code: EntDrv), 各Application的配置放在相应的App-x下。
# Global级别配置文件
# GlobalSetting
path: \Conf\GlobalSetting.*, Entity格式, 必须存在
namespace Ligg.EasyRPADesk
{
public class GlobalSetting
{
public string DefaultCulture { get; set; }
public string HelpdeskEmail { get; set; }
public string PhythonExePath { get; set; }
}
}
示例:
字段 | DefaultCulture | HelpdeskEmail | PhythonExePath |
---|---|---|---|
示例1 | en-US | LiggHelpdesk@outlook.com | C:\Python38\Python.exe |
示例2 | zh-CN | LiggHelpdesk@outlook.com | \Python.exe |
示例3 | zh-CN |
说明:
DefaultCulture: 不可为空; 程序默认的起始Culture; 必需遵循标准, 否则程序启动时会报错。在配置文件GlobalSetting.*,
HelpdeskEmail: 可为空; 作用: 程序运行出错,弹出错误提示时,提醒用户给该帐号发邮件; 如空, 则没有发邮件的提示。
PhythonExePath: 可为空; 如空, 以ApplicationSetting为准; 如无, 执行RunPython时会有出错提示; 支持绝对和相对路径, 如果是相对路径, 则父路径为@rootDir\Lib
# Cultrues
path: \Conf\Culture\Cultrues.*, Table格式, 可无; 如不需要支持多语言, 无需此配置文件
字段 | Name | LanguageCode | LanguageName | ImageUrl | IsDefault |
---|---|---|---|---|---|
示例1 | en-US | en | English | \Images\us.png | true |
示例2 | zh-CN | szh | 简体中文 | \Images\cn.png | false |
示例3 | zh-CN | czh | 繁体中文 | \Images\cn.png | false |
示例4 | zh-CN | miao | 苗语 | \Images\cn.png | false |
示例5 | zh-CN | en | English | \Images\cn.png | false |
示例6 | de-DE | de | Deutsch | \Images\de.png | false |
说明:
Name: 不可为空; 为空, 则启动程序时报错; 必需遵循标准, 否则程序运行切换语言时会报错。
LanguageCode: 不可为空; 为空, 则程序启动时报错; 一个Culture可以设置多种Language。
LanguageName: 不可为空; 为空, 则界面语言切换栏文字显示空白。
ImageUrl: 不可为空; 为空, 则界面语言切换栏图片显示空白; 只支持相对路径, 父路径@rootDir\Conf\Cultures\images\。
IsDefault: 不可为空; 为空, 则程序启动时报错; 该字段为ture, 在显示多语言文本时优先查找该语言文本; 只能有一行为true。
上述示例可以并存, 如果从en-US en却换到zh-CN en, 线程的Culture发生改变, 但UI上文本没有改变
注意
- 系统UI上输出数值、日期格式按当前Culture显示。
- 配置文件里输入的文本转数值或时间时,没有考虑Culture, 请按en-US的标准书写。代码如下:
var single1= Convert.ToSingle(inputStr, CultureInfo.InvariantCulture);
var time1 = Convert.ToDateTime(inputStr, CultureInfo.InvariantCulture);
# StyleSheets
path: \Conf\StyleSheets.*, Table格式, 可无; 如无则是缺省的SeaBlue风格
风格配置文件, 此功能和配置示例将在下一个版本推出, 实在是太繁琐, 要花大量时间
# OeStdServiceComponents
path: \Conf\OeStdServiceComponents.*, Table格式, 可无; 如无, 执行OeStdService会报错
namespace Ligg.EasyRPADesk
{
public class OeStdServiceComponent
{
public string Name { get; set; }
public string Path { get; set; }
public string Description { get; set; }
}
}
示例:
字段 | Name | Path | Description |
---|---|---|---|
示例1 | CommConnectors | D:\CommConnectors\CommConnectors.dll | 所有通讯组件的封装 |
示例2 | MqttConnector | D:\CommConnectors\Mqtt\MqttConnector.dll | MqttConnector组件 |
示例3 | MqttConnector | \CommConnectors\Mqtt\MqttConnector.dll | MqttConnector组件 |
说明:
Name: 不可为空。
Path: 不可为空; 支持绝对路径和相对路径, 如果是相对路径, 则父路径为@rootDir\Program\OeStdServiceComponents。
Description: 可为空。
前者是把所有的通讯组件集中封装, 后者是独立封装
# App级别配置文件
# ApplicationSetting
path: \Conf\Apps\App-x\ApplicationSetting.*, Entity格式, 必须存在
namespace Ligg.EasyRPADesk
{
public class ApplicationSetting
{
//可为empty, 如果empty, 从GlobalSetting获取
public string PhythonExecPath { get; set; }
//可为empty, 如果empty, 从GlobalSetting获取
public string HelpdeskEmail { get; set; }
//不能为null
//如果为false, 起始Culture以GlobalSetting.DefaultCulture为准
public bool SupportMultiCultures { get; set; }
//如果SupportMultiCultures为true,不可为empty,
//示例: zh-CN|szh, 与配置文件\Conf\Culture\Cultrues* 保持一致
public string DefaultLanguage { get; set; }
//可为empty, 不能为empty, 否则会导致AutoUpgrade功能出错
public string ApplicationVersion { get; set; }
//不能为null
public bool HasCblpComponent { get; set; }
//支持绝对路径和相对路径
//如果是相对路径, 父路径是 @rootDir\\Cblps\\App-x
public string CblpDllPath { get; set; }
//可为empty, 如果empty, 获取 @appDataDir 失败
//支持绝对路径和相对路径
//如果是相对路径, 父路径是 @rootDir\\Data\\App-x
public string ApplicationDataDir { get; set; }
//可为empty, 如果empty, 获取 @appLibDir 失败
//支持绝对路径和相对路径
//如果是相对路径, 父路径是 @rootLibDir\\Lib\\App-x
public string ApplicationLibDir { get; set; }
//可为empty, 如果empty, 缺省是最后一个硬盘的\\tmp\\%appCode%
//只支持绝对路径
public string ApplicationTempDir { get; set; }
//不能为null, 如果为true, 则程序启动时弹出密码验证对话框,
//通过验证, 程序继续; 如果启始参数里带有Password, 则是隐式验证
//启始Form下也有对应配置, 优先级此处为高,
//即 ApplicationSetting.VerifyPasswordAtStart=
//ApplicationSetting.VerifyPasswordAtStart||StartForm.VerifyPasswordAtStart
public bool VerifyPasswordAtStart { get; set; }
//Larray 格式, 例如
//格式选项: md5 or tde(时间动态加密), 例如
//md5, happy
//上例表示以happy为key的md5加密
//tde, %appCode%, 10
//上例表示以%appCode%为key的时间动态加密, 时间有效期10分钟
public string PasswordVerificationRule { get; set; }
//不能为null, 如果为true, 则程序启动时登录验证对话框, 通过验证, 程序继续
//启始Form下也有对应配置, 优先级此处为高,
//即 ApplicationSetting.LogonAtStart=
//ApplicationSetting.LogonAtStart||StartForm.LogonAtStart
public bool LogonAtStart { get; set; }
//登录界面的UI配置路径
//只支持相对路径
//对Winform 父路径是 %appZonesDir%
//对Console 父路径是 %appScenariosDir%
public string LogonLocation { get; set; }
//软件封面的UI配置路径
//只支持相对路径
//对Winform 父路径是 %appZonesDir%
//对Console 父路径是 %appScenariosDir%
//是否显示软件封面, 由StartForm.SoftwareCoverAtStart配置决定
public string SoftwareCoverLocation { get; set; }
//风格编码, 例如 SeaBlue/ChinaRed
//可为empty, 如果empty, 则是缺省的SeaBlue风格
//此功能和配置示例将在下一个版本推出
public string StyleSheetCode { get; set; }
}
}
说明:
- PasswordVerificationRule 的数据格式详见 数据格式相关内容, 具体示例详见 教程-Winform-专题-起始密码 教程-Console-专题-起始密码
- 起始参数也包含起始语言, 起始语言的优先级是: 起始参数-语言>ApplicationSetting.DefaultLanguage , 详见 教程-Console-多语言支持 教程-Winform-多语言支持
# 多语言文本配置文件
- path: \Conf\Apps\App-x\AbbrevAnnexes.*, Table格式, 可无; 是关于单词(如缩写)的多语言配置文件
- path: \Conf\Apps\App-x\ApplicationAnnexes.*, Table格式, 可无; 是关于句子或词组的多语言配置文件
- path: \Conf\Apps\App-x\PhraseAnnexes.*, Table格式, 可无; 是本应用的描述、备注等属性的多语言配置文件
注意
- 如果不需要多语言支持, 可以不需要PhraseAnnexes, 但是需要规范一些句子的输出, 也可使用PhraseAnnexes。
- 虽然不需要多语言支持, 但在应用里需要拼接文本, 可以使用AbbrevAnnexes。
- 虽然不需要多语言支持, 但在应用里要调用本Application的一些描述、备注等, 可以使用ApplicationAnnexes。
- 此三种情况可以把LangugageCode设为Empty。
AbbrevAnnexes 示例:
字段 | MasterName | DisplayName | Description | Remark | LangugageCode |
---|---|---|---|---|---|
示例1 | Arch | 架构 | 架构,又名软件架构,是有关软件整体结构与组件的抽象描述。 | szh | |
示例1 | Arch | 架構 | 架構,又名軟件架構,是有關軟件整體結構與組件的抽象描述。 | czh | |
示例1 | Arch | Architecture | also known as software architecture, is an abstract description of the overall structure and components of software. | en |
PhraseAnnexes 示例:
字段 | MasterName | DisplayName | Description | Remark | LangugageCode |
---|---|---|---|---|---|
示例1 | This function is under developing... | 本功能正在开发当中... | szh | ||
示例1 | This function is under developing... | 本功能正在開發當中… | czh | ||
示例1 | This function is under developing... | Diese Funktion entwickelt sich... | de | ||
示例2 | Connecting server failed... | 服務器連接失敗… | szh | ||
示例2 | Connecting server failed... | 架構 | czh | ||
示例2 | Connecting server failed... | Verbindung des Servers fehlgeschlagen... | de |
ApplicationAnnexes 示例:
字段 | DisplayName | Description | Remark | Remark1 | Remark2 | LangugageCode |
---|---|---|---|---|---|---|
示例1 | IT运维工具箱 | IT服务管理和运维自动化系统 | 运维中心 | ITSMAOA | 打造高效、精准、可测量的IT服务和运维管理 | szh |
示例1 | IT Operation Tookit | IT Service Management And Operation Automation System | Operation Center | ITSMAOA | Build easy, precise, metrizable IT service and operation | en |
说明:
ApplicationAnnexes并不需要MasterName字段, 系统会自动加上去。
在配置文件的公式里可以这样调用AbbrevAnnexes/ PhraseAnnexes的当前语言的文本:
- 缺省是DisplayName, 可以省略
- =GetAbbrevAnnexText; Arch
- =GetPhraseAnnexText; This function is under developing...
- 不省略的写法
- =GetAbbrevAnnexText; Arch; DispayName
- =GetAbbrevAnnexText; Arch; Discription
- 缺省是DisplayName, 可以省略
在配置文件的公式里可以这样调用ApplicationAnnexes 的当前语言的文本:
- 缺省是DisplayName, 可以省略
- =GetApplicationAnnexText
- 不省略的写法
- =GetApplicationAnnexText; DispayName
- =GetApplicationAnnexText; Remark2
- 缺省是DisplayName, 可以省略
# UI配置文件
- 每个Application可以有多个Console的应用窗口, 每个应用窗口就是一个Scenario, 比如IT运维工具箱(OrpTk)有2个Scenario: RunShell、RunPython; 他们的UI配置文件就分别放到
- \Conf\Apps\OrpTk\UI\Console\Scenarios\Basic\RunShell
- \Conf\Apps\OrpTk\UI\Console\Scenarios\Basic\RunPython
- 每个Application可以有多个Winform的启动Form, 比如OrpTk有4个 不同类型的Form分别是: 管理员主界面(Function Form)、用户主界面(Function Form)、巡检工具Svi界面(Single View Interface, Svi Form)、备份作业工具Szi界面(Single Zone Interface, SziForm), 他们的UI配置目录就分别放到
- \Conf\Apps\OrpTk\UI\Functions\Admin
- \Conf\Apps\OrpTk\UI\Functions\User
- \Conf\Apps\OrpTk\UI\Views\Insp
- \Conf\Apps\OrpTk\UI\Zones\Common\BakWorker
- 注意Function Form的路径是单层的
- UI配置详见教程相关内容。