我有一個從InstallShield執行的.NET自定義操作(DTF)。.NET String []運算符從ToString()返回不同的東西
在.NET CA中,我拉取了一個MSI屬性,其值爲"[CommonAppDataFolder]abc\def.txt"
。
string val = session["MY_PROPERTY"]; // Microsoft.Deployment.WindowsInstaller.Session
當我打印這個變量到日誌文件,我得到:C:\ProgramData\abc\def.txt
屬性如下訪問。這是我期望的。
然而,當我使用[]
操作者觀察字符一個字符,我從取代的價值特點: [CommonAppDataFolder]...
例如,val[0]
是'['
而不是'C'
。
這是怎麼可能的呢?
此外,==
,string.compare()
,!=
,等等都沒有給預期的結果(我想像這些使用[]
操作引擎蓋下面)。
編輯:
這是我如何登錄: session.Log("File name: {0}", val);
這是我如何打印字符一個字符:
for (int i = 0; i < val.Length; i++)
{
session.Log(val[i].ToString());
}
你能顯示了兩種情況的代碼? –
這絕對不是內置於'string'中的。請更多地展示你如何登錄。 –
@JonSkeet:session.Log(「文件名:{0}」,val); – jglouie