Hi and halleluja
I finally managed to access the SourceDir Property in the CustomAction data.
The reason i could not access the SourceDir property earlier was simply that I
scheduled the customAction to assign the properties to the CustomActiondata to
early (It seems UI-sequence and execute sequence are different)
Here is what works:
<InstallExecuteSequence>
<Custom Action="TestCA.SetProperty" After="CreateFolders"/>
<Custom Action="CreateFolders"
After="CopyChangingFilesAction.SetProperty"/>
</InstallExecuteSequence>
<CustomAction Id="TestCA.SetProperty" Return="check"
Property="TestCA"
Value="SourceDir=[SourceDir];INSTALLDIR=[INSTALLDIR];CommonAppDataFolder=[CommonAppDataFolder]">
</CustomAction>
<CustomAction Id="TestCA" BinaryKey="CustomActionDll" DllEntry="TestMethod"
Impersonate="no" Execute="deferred" Return="check">
</CustomAction>
Even though i like some aspectcs of msi (like the declarative approach), it
seems to me that it is far more complicated than it could have been. Wix is a
good start but - naturally - it cannot fully overcome the msi shortcomings. Or
maybe I should have become something else in life
________________________________________
Von: [email protected] [[email protected]]
Gesendet: Mittwoch, 14. Juli 2010 10:11
An: [email protected]
Betreff: Re: [WiX-users] Accessing Source directory in Deferred Custom Action
(ApDataFolder etc. is working, just not SourceDir)
Hi
Since I haven't managed to assign the [SourceDir] value to a customAction Data
Property, i tried to assign the data assign the value to a property and then
assign that property to the a customAction. However, no success, the assigned
property is empty. I am sure it is a simple syntax thing but i cant figure out
the solution :-(
Here is what i did:
<Property Id="TestProp" Value="[SourceDir]" />
<SetProperty Id="TestProp" After="CostFinalize" Sequence="execute"
Value="[SourceDir]" />
<InstallExecuteSequence>
<Custom Action="TestCA.SetProperty" After="InstallInitialize"/>
<Custom Action="TestCA" After="TestCA.SetProperty"/>
</InstallExecuteSequence>
<CustomAction Id="TestCA.SetProperty" Return="check"
Property="TestCA"
Value="TestingCAD=[TestProp];INSTALLDIR=[INSTALLDIR];AppDataFolder=[AppDataF
older]">
</CustomAction>
<CustomAction Id="TestCA" BinaryKey="CustomActionDll" DllEntry="TestMethod"
Impersonate="no" Execute="deferred" Return="check">
</CustomAction>
Still no success. :-(
I have found a workaround to set a property but thats something i want to avoid
at any cost:
1. Define property "DUMMYPROPERTY"
2. Set property in C# custom action: session["DUMMYPROPERTY"] = "i get
assigned, jabadabadu";
3. Assign property to custom action data (as above)
So I am 100% sure that the syntax i use for the SourceDir property is wrong. It
must be something simple.
I am grateful for any help.
Thanks
________________________________________
Von: Blair [[email protected]]
Gesendet: Dienstag, 13. Juli 2010 18:34
An: 'General discussion for Windows Installer XML toolset.'
Betreff: Re: [WiX-users] Accessing Source directory in Deferred Custom Action
(ApDataFolder etc. is working, just not SourceDir)
In a verbose installation log, what is the resulting value of the TestCA
property?
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Tuesday, July 13, 2010 8:24 AM
To: [email protected]
Subject: [WiX-users] Accessing Source directory in Deferred Custom Action
(ApDataFolder etc. is working, just not SourceDir)
Hi
I would like to access the "SourceDir" property in a deferred custom action.
While i can access other directories via the CustomAction property (see
example below). The SourceDir ActionData remains empty. I must be doing
something wrong. I sure it's something silly, that only a wix newby can
stumble over.
Any help appreciated.
Thanks
My sample code:
<InstallExecuteSequence>
<Custom Action="TestCA.SetProperty" After="InstallInitialize"/>
<Custom Action="TestCA" After="TestCA.SetProperty"/>
</InstallExecuteSequence>
<CustomAction Id="TestCA.SetProperty" Return="check"
Property="TestCA"
Value="SourceDir=[SourceDir];INSTALLDIR=[INSTALLDIR];AppDataFolder=[AppDataF
older]">
</CustomAction>
<CustomAction Id="TestCA" BinaryKey="CustomActionDll" DllEntry="TestMethod"
Impersonate="no" Execute="deferred" Return="check">
</CustomAction>
In the C# code:
[CustomAction]
public static ActionResult TestMethod(Session session)
{
session.Log("CustomAction TestMethod called!");
.
try{
// empty
string showMe = session.CustomActionData["SourceDir"];
// working, path
string showMe = session.CustomActionData["AppDataFolder"];
----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users