已经建立好的自订页面,
现在我们要为这些页面上Action,
而WixToolset有专门自订动作的专案档Custom Action Project for Wix v3
我们建立一个DemoUse.CustomAction专案
建立好了以後我们看CustomAction,我已经改成叫SetCustomAction了
其中传入参数Session 就是由刚刚 WixToolset 内设定的自订属性,
目前可以使用的参数
1.SYSTEMIP -我们自订页面
2.WEBPORT -我们自订页面
3.INSTALLFOLDER -由选择路径页面得到的
而抓取资料的方式就session["xxx"]这样使用
var webPort = session["WEBPORT"];
假设我们要针对Json文字档做编辑
网路上抓的文字档撰写
public class TxtEditer
{
private string PATH;
public TxtEditer(string path)
{
PATH = path;
}
/// <summary>
/// 取得文字档资料
/// </summary>
/// <returns></returns>
public string GetTxtData()
{
var result = string.Empty;
using (StreamReader reader = new StreamReader(PATH, System.Text.Encoding.Default))
{
result = reader.ReadToEnd();
}
return result;
}
/// <summary>
/// 完全覆盖文字档
/// </summary>
/// <returns></returns>
public void EditTxtData(string txt)
{
using (StreamWriter writer = new StreamWriter(PATH, false, System.Text.Encoding.Default))
{
writer.Write(txt);
}
}
}
Json档了话可以用Json套件,
懒的话直接转JObject,
大略这样写….
[CustomAction]
public static ActionResult SetCustomAction(Session session)
{
//可使用的参数
var path = Path.Combine(session["INSTALLFOLDER"], "appsettings.json");
var systemIP = session["SYSTEMIP"];
var webPort = session["WEBPORT"];
//编辑Json档
var txtEditer = new TxtEditer(path);
string txt = txtEditer.GetTxtData();
var config = JsonConvert.DeserializeObject<JObject>(txt);
config["URL"] = $"{systemIP}:{webPort}";
txt = JsonConvert.SerializeObject(config, Formatting.Indented);
txtEditer.EditTxtData(txt);
return ActionResult.Success;
}
确定後明天再来将他们结合在一起
这就考验你各位的程序底子了
因为没办法直接使用F5,
而我是使用LINQPad在旁边做辅助…嘿嘿
Day8程序码
https://github.com/Aslan7826/defaultMVC/commits/Day08
>>: D-22. 继承(继承链问题)、模组(extend、include、prepend差异) && Add to Array-Form of Integer
予焦啦!正如 Golang 自己维护了记忆体管理机制(竞技场、记忆体抽象层、垃圾回收、...)般,让...
前言 并不是说Reactive 一定要搭配Functional,只是搭配起来更好用,而後面介绍到的R...
Currying Function 今天要提到的是 currying 化, currying 化是 ...
看到书友分享到墨西哥出差时的墨西哥午餐,又恰好在买场购物的时候发现斑豆罐头,也许是个Sign,决定买...
天上永远不会掉下玫瑰,想要的话就要自己去种植。 It never will rain roses. ...