[wix-users] Execute BCP through batch file in C# Custom Action not working
Ven H
venh.123 at gmail.com
Fri Apr 6 03:29:03 PDT 2018
I figured it out. The solution was to use Execute="commit" in the above
CustomAction element in place of "deferred". I found it from the below
link. Hope it helps someone.
https://dylanwooters.wordpress.com/2014/03/20/creating-custom-actions-with-wix-and-running-as-administrator/
Regards,
Venkatesh
On Thu, Apr 5, 2018 at 10:41 PM, Ven H <venh.123 at gmail.com> wrote:
> I have a Custom Action code snippet as below.
>
> pStartInfo = new ProcessStartInfo("cmd.exe");
> pStartInfo.WorkingDirectory = dirName;
> pStartInfo.UseShellExecute = false;
> pStartInfo.CreateNoWindow = false;
> pStartInfo.RedirectStandardOutput = true;
> string space = " ";
> pStartInfo.Arguments = string.Concat("/c ", fileName,
> space, serverName, space, userName, space, pwd);
> pBcp = Process.Start(pStartInfo);
> string output = pBcp.StandardOutput.ReadToEnd();
> pBcp.WaitForExit();
>
> Following is the Custom Action defined in the Product.wxs.
>
> <CustomAction Id="CA_ExecuteBCP" BinaryKey="ExecBCPCADLL"
> DllEntry="ExecuteBCP" Execute="deferred" Return="check" Impersonate="yes"></
> CustomAction>
>
> <CustomAction Id="CA_GetInstallLocation" Property="CA_ExecuteBCP"
> Value="InstallLocn=[INSTALLFOLDER];SqlServer=[SQLSERVER]\[SQLINSTANCE];
> UserName=[SQLUSER];Password=[SQLPASSWORD]" />
>
> <InstallExecuteSequence>
> <Custom Action="CA_GetInstallLocation" Before="CA_ExecuteBCP">NOT
> Installed</Custom>
> <Custom Action="CA_ExecuteBCP" After="InstallFiles">NOT
> Installed</Custom>
> </InstallExecuteSequence>
>
> The code is getting executed properly and I can see the output string
> properly assigned with a value. Basically, it is executing the batch file
> and calling the BCP command along with arguments and returning the output.
> But the data is not imported into the table. If I execute the process code
> from a Console App, it is working fine. Looks like it could be a permission
> issue. I have heard deferred actions already run with elevated privileges.
> Hence I initially tried without the Impersonate attribute, but it didn't
> work. I tried with that also, still it didn't work. I am not sure what is
> wrong or missing. Can anyone please help?
>
> PS: If I use a Builtin Custom Action with ExeCommand attribute, it is
> working without any additional permissions.
>
>
More information about the wix-users
mailing list