C#脚本引擎 CS-Script 之(三)——如何部署
本文不但介绍了CS-Script如何部署,还介绍了CS-Script的部署后面的原理,并用一个框图详细介绍了部署中的各种细节。
一、获取资源
1.从官网上下载编译好的csscript资源:cs-script.7z
https://csscriptsource.codeplex.com/releases/view/616234
2.解压到某目录下,注意选择一个相对固定的目录,比如一个专门用来存放库文件的目录;
比如在我的机器上会放到: E:\OpenSource\cs目录下;
二、执行安装
严格来说,csscript是不需要部署的,其实只要下载了zip包就ok了,不需要什么部署,下载了即可使用。后续的所谓安装只是对操作系统做一些调整,以便让后续编写脚本,执行脚本可以更加方便。
安装步骤:
1. 找到第一节中的解压目录,运行其根目录中的install.cmd,即可完成安装;
2. 默认情况下CS-Script的库是使用.NET V4.5的(注,并不是安装程序需要.NET V4.5,而是运行程序,特别是CSScriptLibrary.dll),如果当前计算机没有安装.NET v4.5,则程序会弹出提示,或者选择降低到 V4.0来使用,那么在内部来说,就是用 lib\Bin\NET 4.0\CSScriptLibrary.dll来替代 lib目录下的CSScriptLibrary.dll。
三、Install.cmd在系统中添加了什么
1. 添加了各种环境变量的,如下图所示:
同时会把%CSSCRIPT_DIR%, %CSSCRIPT_DIR%\LIB添加到环境变量中,以便可以找到cscs.exe, csws.exe等各种csscript的工具;
2.在ProgramData中创建了CS-Script目录,拷贝了后续辅助调试需要用到的一些资源,主要是将后续的右键菜单需要用到的一些命令拷贝到了
C:\ProgramData\CS-Script\ShellExt目录下了,内容如下:
3. 注册了一个动态的右键菜单,后续只要在cs文件上右键,在右键菜单中就会包含如下内容:
这个菜单其实是根据C:\ProgramData\CS-Script\ShellExt目录下的cmd文件动态生成的。
四、Install.bat都做了什么?
打开install.cmd,里面就一句话:
start css_config.exe,所以我猜想所有配置的工作都封装在css_config.exe的源码中了,好在这是开源代码,在下载源码包中也包括了css_config项目的代码,所以我就顺着css_config的源码往下看,打开css_config发现他的代码很简单,主要做了三件事情:
1. 检查当前windows是否有管理员权限,如果没有则提示并退出;
2.根据当前系统的.NET 版本,以及用户的选择,确认拷贝哪个版本的CSSCriptLibrary.dll到 Lib目录下;
3.调用csws.exe来执行一段cs脚本,以执行更深层次的配置,代码如下:
string csws = Path.Combine(rootDir, "csws.exe"); string configScript = Path.Combine(rootDir, @"lib\config.cs"); args = new string[2]; args[0] = "/dbg"; args[1] = configScript; AppDomain.CurrentDomain.ExecuteAssembly(Path.Combine(rootDir, @"csws.exe"), args);
后续就顺着config.cs一直往下走,发现整个部署过程的逻辑听复杂,在各种cmd、exe、dll和cs之前绕来绕去的,大致如下图所示,如果有兴趣的话,可以再详细去看具体的代码。
本系列包括: