I am using cutom actions to modify a .csv file. Please see the code for the
same below.
<Binary Id='CustomAction.CA.dll'
SourceFile='D:\POC\CustomAction\bin\Debug\CustomAction.CA.dll'/>
<Property Id="OLDENVIRONMENTVALUE" Value="abcdef"/>
<Property Id="NEWENVIRONMENTVALUE" Value="xyzedf"/>
<Property Id="FILEPATH" Value="[INSTALLDIR]MyApp\bin\Test.csv" />
<CustomAction Id="MyAction.SetProperty"
Return="check"
Property="CustomAction.CA"
Impersonate="no"
Value="[OLDENVIRONMENTVALUE],[NEWENVIRONMENTVALUE],[FILEPATH]" />
<CustomAction Id='CustomAction.CA'
BinaryKey='CustomAction.CA.dll'
DllEntry='UpdateCSVFile'
Return="check"
Impersonate="no"
Execute='deferred'/>
<InstallExecuteSequence>
<Custom Action='MyAction.SetProperty' After='InstallFiles'/>
<Custom Action='CustomAction.CA' After='MyAction.SetProperty'/>
</InstallExecuteSequence>
[CustomAction]
public static ActionResult UpdateCSVFile(Session session)
{
string[] arguments = GetCustomActionDataArguments(session);
argument_0 = arguments[0];
argument_1 = arguments[1];
argument_2 = arguments[2];
string[] csvFile = File.ReadAllLines(argument_2);
for (int i = 0; i < csvFile.Length; i++)
{
string line = csvFile[i];
line = line.Replace(argument_0, argument_1);
if (!csvFile[i].Equals(line))
{
csvFile[i] = line;
}
}
session.Log("Update the CSV file");
using (StreamWriter sWriter = new
StreamWriter(argument_2))
{
for (int i = 0; i < csvFile.Length; i++)
{
sWriter.WriteLine(csvFile[i]);
}
}
return ActionResult.Success;
}
private static string[] GetCustomActionDataArguments(Session
session)
{
string[] keys = new string[session.CustomActionData.Keys.Count];
session.CustomActionData.Keys.CopyTo(keys, 0);
return keys[0].Split(',');
}
While defining the property FILEPATH, if I specify the harcoded path of the
file, the above code works fine. Instead of it, if I specify the value of
FILEPATH property as "[INSTALLDIR]MyApp\bin\Test.csv", I get the following
error.
Error:
Could not find a part of the path
'C:\Windows\Installer\MSI32BC.tmp-\C:\Program Files\Bing
SingleBox\MyApp\bin\Test.csv'.
I have verified the path in the CustomAction.CA.dll and it is correct. I am
unable to figure out the issue. Please let me know in case I am doing
anything wrong. Or any pointers to solving this issue will be highly
appreciated.
Thanks and Regards,
Kshama
--
View this message in context:
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/WIX-tp5121025p5121025.html
Sent from the wix-users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users