zoukankan      html  css  js  c++  java
  • C#脚本引擎 CS-Script 之(三)——如何部署

    本文不但介绍了CS-Script如何部署,还介绍了CS-Script的部署后面的原理,并用一个框图详细介绍了部署中的各种细节。

    一、获取资源

    1.从官网上下载编译好的csscript资源:cs-script.7z 

    https://csscriptsource.codeplex.com/releases/view/616234

    2.解压到某目录下,注意选择一个相对固定的目录,比如一个专门用来存放库文件的目录;

    比如在我的机器上会放到: E:OpenSourcecs目录下;

    二、执行安装

    严格来说,csscript是不需要部署的,其实只要下载了zip包就ok了,不需要什么部署,下载了即可使用。后续的所谓安装只是对操作系统做一些调整,以便让后续编写脚本,执行脚本可以更加方便。

    安装步骤:

    1. 找到第一节中的解压目录,运行其根目录中的install.cmd,即可完成安装;

    2. 默认情况下CS-Script的库是使用.NET V4.5的(注,并不是安装程序需要.NET V4.5,而是运行程序,特别是CSScriptLibrary.dll),如果当前计算机没有安装.NET v4.5,则程序会弹出提示,或者选择降低到 V4.0来使用,那么在内部来说,就是用 libBinNET 4.0CSScriptLibrary.dll来替代 lib目录下的CSScriptLibrary.dll。

    三、Install.cmd在系统中添加了什么

    1. 添加了各种环境变量的,如下图所示:

    image

    同时会把%CSSCRIPT_DIR%, %CSSCRIPT_DIR%LIB添加到环境变量中,以便可以找到cscs.exe, csws.exe等各种csscript的工具;

    2.在ProgramData中创建了CS-Script目录,拷贝了后续辅助调试需要用到的一些资源,主要是将后续的右键菜单需要用到的一些命令拷贝到了

    C:ProgramDataCS-ScriptShellExt目录下了,内容如下:

    image

    3. 注册了一个动态的右键菜单,后续只要在cs文件上右键,在右键菜单中就会包含如下内容:

    这个菜单其实是根据C:ProgramDataCS-ScriptShellExt目录下的cmd文件动态生成的。

    image

    四、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, @"libconfig.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之前绕来绕去的,大致如下图所示,如果有兴趣的话,可以再详细去看具体的代码。

    image

    本系列包括:

    C#脚本引擎 CS-Script 之(一)——初识 

    C#脚本引擎 CS-Script 之(二)——性能评测 

    C#脚本引擎CS-Script之(三)——如何部署 

  • 相关阅读:
    Java中的集合Queue
    CountDownTimer
    CountDownTimer
    CountDownTimer
    CountDownTimer
    【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
    【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
    【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
    【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
    什么是区块链 Layer 0 扩容
  • 原文地址:https://www.cnblogs.com/strinkbug/p/4726050.html
Copyright © 2011-2022 走看看