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());
}