我有一个从 InstallShield 执行的 .NET 自定义操作 (DTF)。
在 .NET CA 中,我正在提取一个值为"[CommonAppDataFolder]abc\def.txt".
该属性的访问方式如下:
string val = session["MY_PROPERTY"]; // Microsoft.Deployment.WindowsInstaller.Session
当我将此变量打印到日志文件时,我得到:C:\ProgramData\abc\def.txt. 这是我所期望的。
但是,当我使用[]运算符逐个字符查看时,我会从未替换的值中获取字符:
[CommonAppDataFolder]...例如,val[0]is'['而不是'C'.
这怎么可能?
此外,==, string.compare(),!=等都没有给出预期的结果(我想这些使用[]引擎盖下的运算符)。
编辑:
这就是我记录的方式:
session.Log("File name: {0}", val);
这就是我逐字符打印的方式:
for (int i = 0; i < val.Length; i++)
{
session.Log(val[i].ToString());
}