New Post: How to adjust attributes of "Component" block
I have a "File" entity that I would like to mark as "Permanent = "Yes"" in the resulting WXS file. Unfortunately in WXS this need to be in the surrounding "Component" tag not on the "File" tag itself....
View ArticleNew Post: How to adjust attributes of "Component" block
Found it. Need to use injection.... Compiler.WixSourceGenerated += document => { var components = document.FindAll("Component"); foreach(var component in components) {...
View ArticleNew Post: How to adjust attributes of "Component" block
Or better yet set it directly from the contained entity definition with "Component:" selector:new RegValue(RegistryHive.LocalMachine, @"Software\My Company\My Product", "InstallationDirectory",...
View ArticleNew Post: How to adjust attributes of "Component" block
Also be aware that there are a few convenient attribute matching method extensions for XElement:if (e.HasAttribute("Id", "MyAppID")) ... if (e.HasAttribute("Id", id => id.EndsWith(".PPLC"))) ...
View ArticleNew Post: Patch creation using WIX#
Wix# does support creation of patches. Though it is it is deliberately implements only MajorUpgrade (both its flavours). Read more about it here: Deployment scenarios/upgrades
View ArticleNew Post: Code execution in Load is not elevated
I use the Load method to set the InstallDir and TargetDir by reading registry settings. If I run the msi from an elevated command prompt everything works fine, but once I just start the msiexec; I'd...
View ArticleNew Post: ProgressText of custom action
I'm using the custom action to run the installed app at the end:new ManagedAction("LaunchServer", Return.check, When.After, Step.InstallFinalize, Condition.NOT_Installed) public class CustomActions {...
View ArticleNew Post: Registry Keys (with no values)
Thanks for this information. I've discovered that an empty registry key can be created using the existing code by setting the name and value of the RegValue to be string.Empty. So I don't think it's...
View ArticleNew Post: Code execution in Load is not elevated
MSI doesn't play nice with the elevation. Its runtime architecture was designed years before the elevation-based security model was introduced. The only custom action that can be elevated is a deferred...
View ArticleNew Post: ProgressText of custom action
For this you will need to use fully custom UI. One of the options is to use "External UI" you will find the sample in the downloadable package. However I would rather go with the Managed Setup UI. The...
View ArticleNew Post: ProgressText of custom action
Thanks for reply. What about injecting the XML in the resulting wix? new ManagedAction(new Id("LaunchServer"), "LaunchServer", Return.check, When.After, Step.InstallFinalize, Condition.NOT_Installed)...
View ArticleNew Post: Change in how QtCmdLineAction works?
Hi, Previously I used to elevate a batch file using the following code: project.AddAction(new QtCmdLineAction(@"[INSTALLDIR]hide.cmd", "", Return.check, When.After, Step.InstallFiles,...
View ArticleNew Post: ProgressText of custom action
If you want to rely on the native MSI UI then indeed you need to use injection. The sample below shows the technique. It works just fine://css_dir ..\..\;//css_ref System.Core.dll;//css_ref...
View ArticleNew Post: Change in how QtCmdLineAction works?
Hi again, I managed to resolve this by instead invoking it as a InstalledFileAction: project.AddAction(new InstalledFileAction("hide.cmd", "", Return.check, When.After, Step.InstallFiles,...
View ArticleNew Post: Simplified Bootstrapper & Managed UI
Hello, I would like to use the "Simplified Bootstrapper" approach to run & install the prerequisite msi in the event it's not installed. I reviewed the corresponding sample and added the required...
View ArticleNew Post: Simplified Bootstrapper & Managed UI
I think the best way to solve it is to use ManagedSetup events. The Load event is triggered before AppSerach action and internally Wix# runtime takes care of detecting if it is InstallUI or Install...
View ArticleNew Post: Change in how QtCmdLineAction works?
Great, txs. For whom who is using ManagedSetup the AfterInsall event is also mapped as a deferred custom action. Thus you can just call the following code from the event handler:staticvoid...
View ArticleNew Post: Simplified Bootstrapper & Managed UI
Thank you for sending the prompt reply! I tried this approach: project.Load += project_Load; var msiFile = Compiler.BuildMsi(project); static void project_Load(SetupEventArgs e) { Func<bool>...
View ArticleNew Post: Simplified Bootstrapper & Managed UI
OK, I wasn't sure if it's OK to do the install before AppSearch. And after your feedback I do remember that it has to be before LaunchConditions as you referred in your original question. This means...
View ArticleNew Post: Simplified Bootstrapper & Managed UI
I see, I guess the native wix UI would my choice for now, simplified bootstrapper works fine with it. Thanks again.
View Article