InstallShieldから実行している.NETカスタムアクション(DTF)があります。
.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());
}