要执行的动作
昨天有讲到安装後的执行动作,那安装之前要执行的动作勒?!
ex 我想先侦测出本机的IP再带入进安装包的 SYSTEMIP。
我们先在CustomAction额外建立一个取得本机IP的GetThisIP方法
[CustomAction]
public static ActionResult GetThisIP(Session session)
{
string name = Dns.GetHostName();
var ip = Dns.GetHostEntry(name).AddressList
.ToList()
.Where(o => o.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && !o.ToString().EndsWith(".1"))
.FirstOrDefault()?.ToString() ?? "127.0.0.1";
session["SYSTEMIP"] = ip;
return ActionResult.Success;
}
依昨天的流程建立起来
<CustomAction Id="GetIP" BinaryKey="SettingCADLL" DllEntry="GetThisIP" Execute="immediate" Return="check" />
而启用时机使用LaunchConditions
google翻译...哈哈哈
比较好听我觉得应该叫 启动後执行
<InstallExecuteSequence>
<Custom Action="GetIP" After="LaunchConditions" Overridable="yes">NOT Installed</Custom>
<Custom Action="SetURL" After="InstallFinalize" Overridable="yes">NOT Installed</Custom>
</InstallExecuteSequence>
建置後执行
到这边的时候,System IP 还会是预设值127.0.0.1...
後来各种爬文才知道有另一个引用方法,使用InstallUISequence!
所以我们建立这个标签并将我们这段程序码移到这里面来。
<InstallUISequence>
<Custom Action="GetIP" After="LaunchConditions" Overridable="yes">NOT Installed</Custom>
</InstallUISequence>
Try!
其实我这边很难想像到要用带有UI的字眼InstallUISequenc可以执行,
尝试过了才恍然大悟,喔~要用这个才行阿0.0
Day10程序码
https://github.com/Aslan7826/defaultMVC/commits/Day10
兔大夫: 「请问是兔豪的家属吗?」 兔豪爸: 「是,我就是。 请问我鹅子他...」 兔大夫: 「抱...
本篇大纲:基本散布图范例、进阶散布图范例 今天的一天一图表,我们要来画 散点图 / 散布图!散布图...
爬虫事前准备 本篇章之後将进入爬虫环节,但开始撰写程序前,我们先来安装会使用的套件吧! 本系列文将使...
「展开运算符」与「其余运算符」, 两者的表示方式都是 ..., 以下分别说明。 展开运算符 展开运算...
欸!?这个不是在 hello world 的时候讲过了ㄇ?! 对。 其实函式还是有其他东西可以讲解的...