There is a collection of standard properties that Windows Installer supplies:

http://msdn.microsoft.com/en-us/library/aa370905(v=vs.85).aspx

about the system, the install state, standard folders etc.
---------------
Phil Wilson


On Sun, Dec 7, 2014 at 6:59 AM, Sarvagya Pant <sarvagya.p...@gmail.com> wrote:
> Yes this worked. Thank you. Yet there was another solution given to me on
> stackoverflow. I could use session["LocalAppDataFolder"] in my code to get
> directly the value. I could not get how the LocalAppDataFolder is being
> accessed as property even though I haven't passed it. Is there any
> reference on this?
>
> On Sun, Dec 7, 2014 at 8:25 PM, Sean Hall <r.sean.h...@gmail.com> wrote:
>
>> You need to remove the CustomAction attribute from the SHGetFolderPath
>> method and put it on your WriteFileToDisk method.
>>
>> On Sun, Dec 7, 2014 at 6:06 AM, Sarvagya Pant <sarvagya.p...@gmail.com>
>> wrote:
>>
>> > I have been making a MSI Installer that can get the value of property
>> > passed to it and write a Config file. I am supposed to call MSI as:
>> >
>> > msiexec /i myfile.msi /l*v output.txt IPADDRESS="192.168.1.1"
>> >
>> > and get value of IPADDRESS
>> >
>> > I have following Wix C# Code that is supposed to work
>> >
>> > namespace SetupCA
>> > {
>> >
>> >     public class CustomActions
>> >     {
>> >
>> >         [CustomAction]
>> >         [DllImport("shell32.dll")]
>> >         public static extern Int32 SHGetFolderPath(
>> >             IntPtr hwndOwner,           // Handle to an owner window.
>> >             Int32 nFolder,              // A CSIDL value that identifies
>> > the folder whose path is to be retrieved.
>> >             IntPtr hToken,              // An access token that can be
>> used
>> > to represent a particular user.
>> >             UInt32 dwFlags,             // Flags to specify which path is
>> > to be returned. It is used for cases where
>> >             // the folder associated with a CSIDL may be moved or renamed
>> > by the user.
>> >             StringBuilder pszPath);
>> >         public static ActionResult WriteFileToDisk(Session session)
>> >         {
>> >
>> >             session.Log("Begin WriteFileToDisk");
>> >
>> >             const int CSIDL_LOCAL_APPDATA = 0x001c;
>> >             StringBuilder path1 = new StringBuilder(256);
>> >             SHGetFolderPath(IntPtr.Zero, CSIDL_LOCAL_APPDATA,
>> IntPtr.Zero,
>> > 0, path1);
>> >             session.Log("LOCAL APP_DATA PATH " + path1.ToString());
>> >
>> >             string ipAddress = session["IPADDRESS"];
>> >             string path = path1.Replace(@"\", @"\\").ToString();
>> >             path = path + @"\\lpa\\config\\";
>> >             session.Log("LOCAL APP_DATA PATH NOW MODIFIED " +
>> > path.ToString());
>> >             string temp = @"
>> > {{
>> >  ""logpoint_ip"" : ""{0}""
>> > }}";
>> >             string config = string.Format(temp, ipAddress);
>> >             session.Log("Config Generated was " + config);
>> >             System.IO.Directory.CreateDirectory(path);
>> >             try
>> >             {
>> >                 System.IO.File.Delete(path + "lpa.config");
>> >             }
>> >             catch (Exception e)
>> >             {
>> >                 session.Log(e.ToString());
>> >             }
>> >             System.IO.File.WriteAllText(path + "lpa.config", config);
>> >             session.Log("Ending WriteFileToDisk");
>> >
>> >             return ActionResult.Success;
>> >         }
>> >     }
>> > }
>> >
>> > The above code is supposed to get the value of IPADDRESS and write a
>> file
>> > to the folder given by CSIDL_LOCAL_APPDATA . For this I used
>> > SHGetFolderPath inside shell32.dll using DLLIMPORT.
>> >
>> > My Wix file is given below:
>> >
>> > <?xml version="1.0" encoding="UTF-8"?>
>> > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
>> >     <Product Id="*" Name="CustomWixInstallerWithCustomAction"
>> > Language="1033" Version="1.0.0.0" Manufacturer="LogPoint"
>> > UpgradeCode="ba9015b9-027f-4451-adb2-e38f9168a850">
>> >         <Package InstallerVersion="200" Compressed="no"
>> > InstallScope="perMachine" />
>> >
>> >         <MajorUpgrade DowngradeErrorMessage="A newer version of
>> > [ProductName] is already installed." />
>> >         <MediaTemplate />
>> >
>> >         <Feature Id="ProductFeature"
>> > Title="CustomWixInstallerWithCustomAction" Level="1">
>> >             <ComponentGroupRef Id="ProductComponents" />
>> >         </Feature>
>> >     </Product>
>> >
>> >     <Fragment>
>> >         <Directory Id="TARGETDIR" Name="SourceDir">
>> >             <Directory Id="ProgramFilesFolder">
>> >                 <Directory Id="INSTALLFOLDER" Name="CustomWixInstaller"
>> />
>> >             </Directory>
>> >         </Directory>
>> >     </Fragment>
>> >
>> >     <Fragment>
>> >         <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
>> >       <Component Id="SomeRandomEXE">
>> >         <File Source
>> >
>> ="G:\SarVaGYa\myworkspace\LatestLpa\lpa\lpa_c\here\src\lpa\Release\lpa.exe"
>> > />
>> >       </Component>
>> >         </ComponentGroup>
>> >     <Binary Id="SetupCA"  SourceFile="G:\visual studio
>> > stuffs\SetupCA\SetupCA\bin\Release\SetupCA.CA.dll"/>
>> >     <CustomAction Id="WRITEFILETODISK" Execute="immediate"
>> > BinaryKey="SetupCA" DllEntry="WriteFileToDisk" />
>> >     <InstallExecuteSequence>
>> >       <Custom Action="WRITEFILETODISK" Sequence="2"></Custom>
>> >     </InstallExecuteSequence>
>> >     </Fragment>
>> > </Wix>
>> >
>> > Both get compiled but when I try to install the MSI using the command I
>> > wrote above I get the following error:
>> >
>> > "There is a problem with this Windows Installer package. A DLL required
>> for
>> > this install to complete could not be run. "
>> >
>> > How do I solve this Issue? Can't I use DLLImport in Wix C# Custom
>> Action.
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> > from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>> > with Interactivity, Sharing, Native Excel Exports, App Integration & more
>> > Get technology previously reserved for billion-dollar corporations, FREE
>> >
>> >
>> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
>> > _______________________________________________
>> > WiX-users mailing list
>> > WiX-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/wix-users
>> >
>>
>> ------------------------------------------------------------------------------
>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>> Get technology previously reserved for billion-dollar corporations, FREE
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
>
>
> --
> *sarvagya*
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to