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