The AppSearch Action will read the registry value and assign it (overwriting in the process) to your property regardless of what value it had. The trick is to establish a property precedence pattern: Most to Least Important: 1) Value picked in UI (if surfaced) 2) Value passed at command line...
Use the Modify action when calling Plan and Apply.
installation,windows-installer,installer,rollback,installaware
InstallAware and other tools such as Window Installer XML and InstallShield author Window Installer databases. Windows Installer handles this automatically for you by providing built in transactional installation and upgrade capabilities. The behavior you are looking for is controlled by where you choose to schedule the RemoveExisitingProducts action. See: RemoveExistingProducts...
c#,windows-installer,installer,restart
This works for me : [RunInstaller(true)] public partial class Installer1 : Installer { public Installer1() { InitializeComponent(); } public override void Install(IDictionary savedState) { savedState.Add("InstallDir", Context.Parameters["dir"]); base.Install(savedState); } public override void Commit(IDictionary savedState) { base.Commit(savedState); Start(savedState); } private void Start(IDictionary savedState) { try { string DirPath = (string)savedState["InstallDir"]; if (!string.IsNullOrEmpty(DirPath))...
You probably have a MajorUpgrade element in your wxs. This element has an attribute that serves as syntactical sugar for authoring several rows including where to schedule RemoveExistingProducts.
.net,visual-studio,wix,windows-installer,installer
Those properties are new to WiX v3.10.
In logs I found this: MSI (c) (38:CC) [08:54:03:324]: Dir (target): Key: INSTALLDIR , Object: C:\Program Files (x86)\PluginCompanyFolder\PluginInstaller2\ MSI (c) (38:CC) [08:54:03:324]: Dir (target): Key: INSTALLDIR.751E70EB_CF76_413B_B8C8_231A31F9C946 , Object: C:\Program Files (x86)\PluginCompanyFolder\PluginInstaller\ So there are two properties INSTALLDIR and INSTALLDIR with guid. This second property is added by merge module and...
wix,windows-installer,installer,msi-gui
If I recall correctly, MSI has a limitation that a feature state won't record until after you changed to another dialog. You are doing it right, it just won't work. I would transition to another dialog (SqlDatabaseDlg probably) and then on the next button of that dialog do your checks...
installation,wix,windows-installer,installer,custom-action
Summary In WIX 3.9 (and earlier), the FirewallExtension only supports a single integer for the Port attribute. The Port attribute supports Formatted values, but the result of the formatting must still be a single integer. In your case [PORTS] must evaluate to a single integer. If the Port attribute is...
wix,windows-installer,installshield
A 32bit MSP can only patch a 32bit MSI. Same for 64bit. Yes, I would have different UpgradeCode and ProductCodes for the two installers. If you want the patch to seem like 1 patch you can wrap it in a Burn bootstrapper. The user will run the EXE and the...
It's pretty easy, basically you need to overwrite the scheduled "Show exit dialog when installation was successful", and say that it should never happen. The "0" means disabled. <InstallUISequence> <Show Dialog="ExitDialog" OnExit="success">0</Show> </InstallUISequence> <AdminUISequence> <Show Dialog="ExitDialog" OnExit="success">0</Show> </AdminUISequence> ...
wix,windows-installer,installer
WiX is a language (XML/XSD) that serves as a way of authoring (compiling) Windows Installer (.MSI) databases. WiX doesn't install anything, MSI does. I maintain an open source project called IsWiX. The concept is simple. IsWiX provides additional WiX project templates (scaffolding) and graphical designers to assist you in creating...
windows-installer,install,components,installshield
InstallShield has a view called "Direct Editor". This is where you can see the underlying windows installer table data / relationships. You can go to the registry table, find the row you are interested in and then update the Component_ column (There's even a drop down) and associate that entry...
windows,installer,windows-installer,atl,winsxs
Your alternative is to run the VC_redist.exe for that version of Visual Studio, run it from the bootstrapper with whatever setup tool you're using. I don't know what you mean about packaging technology. The only way merge modules (msm files) can be installed is to add them at build time...
Wix is open source, and the best way to create MSI files in my opinion. Please check this answer for more information: MSI vs Nuget package what is better for continues delivery? The linked answer contains links to descriptions of how Wix compares to other deployment software - both commercial...
c#,visual-studio-2013,windows-installer
When you do an upgrade with a VS setup (RemovePreviousVersions) it can succeed but that doesn't mean that the files have been updated. Standard file replacement rules are used, and that means that files will be replacced only if their file versions have been incremented. So here is a scenario...
windows-installer,installshield
The solution is pretty simple, if a bit convoluted. I created it initially using InstallShield, but after a point, you're going to stray beyond the capabilities of the InstallShield GUI. I'm going to document the MSI tables (from the InstallShield DirectEditor) so it should be easy to translate to WiX....
c#,wix,windows-installer,wixsharp
The easiest way is to pack multiple dialogs into a single UI shell and allow the shell to navigate between dialogs. If you take this approach then you just inject a single shell-ClrDialog. BTW, the UI shellwith multiple CLR dialogs is a feature I am planing to release very soon....
c#,.net,windows-services,windows-installer,silent-installer
I don't think you have much chance of making this work. If the MSI tries to access folders like Desktop, User's Program Menu, the CommonFilesFolder (not a complete list) or looks at the LogonUser property and any number of other things it will fail because in a normal install from...
wix,windows-installer,manifest,properties-file,details
That property is in the Summary Information Stream: Creating Application Summary property Windows Explorer simply calls it Program. WiX follows the MSI standard and put's the name of the tool and version that created the MSI. WiX doesn't have any attributes in the schema to override this. If it really...
xml,wix,windows-installer,installer,upgrade
The issue seems to be a recurring one, similar to this: http://support.microsoft.com/kb/905238 Windows decides not to install the files because a higher version exists, but doesn't re-evaluate that decision when it turns out we're doing a major upgrade. I thought this issue had been fixed in MSI 4.5. Doing the...
visual-studio-2013,wix,windows-installer
First, the reason why this is happening. When you specify multiple cultures to build (for example, en-US and ja-JP), Visual Studio needs a way to differentiate between the installation packages generated. This is the reason why you get the output path with the culture string appended to it. If you...
c#,user-interface,wix,installer,windows-installer
Windows Installer already supports silent installations. See: Command-Line Options An example of a silent installation would be: msiexec /i example.msi /qn ...
windows-installer,visual-studio-setup-proje
That project type (which was killed from visual studio and sadly brought back to life as an extension after thousands of app developers complained it was gone) is known by windows installer experts to be of very poor quality. It is a failure in many ways. In this case it's...
batch-file,azure,command,windows-installer,installer
As the documentation states there are explicit switches and configuration files for your installation scenario. A simple example could be gpg4win-2.2.4.exe /S /D=D:\Temp\Gpg4win specifying /S for silent and /D for the destination path which might be relevant for your scenario. If you need more detailed setting the documentation shows how...
windows-installer,installshield,custom-action
WiX has a bootstrapper named Burn that handles chaining packages together for both Install and Uninstall. It's used by products such as Visual Studio. InstallShield's version of this is Suite Installers. This is only available in InstallShield Premiere edition and I'm not sure if it's in the AdminStudio edition or...
wix,windows-installer,installer,custom-action
I believe this is occurring because in your installer the default mode is Per-User hence it is not detecting per-machine. You could use MSIGetProductInfo to find the installed products if the assignmenttype is “1” then you could set the below properties to Product Code of Per-Machine product WIX_UPGRADE_DETECTED OLDERVERSIONBEINGUPGRADED Use...
wix,windows-installer,custom-action
This should work ... <CustomAction Id ="echo_test" Directory ="INSTALLLOCATION" ExeCommand ='NOTEPAD.EXE echo_test.txt' Execute ="immediate" Return ="asyncNoWait" /> Taken from: Call command line after installation in Wix...
If you want a major uprade, start with the WiX MajorUpgrade element. The general rules for an upgrade are: Different ProductCode and PackageCode from older product. Increment ProductVersion somewhere in the first three fields. Same UpgradeCode as older product. Do something (like Wix MajorUprade or Upgrade elements) to ensure that...
wix,windows-installer,wix3.7,wix3.8
Since WIX 3.6 HarvestProject target (Project Output Groups and Harvest flags in Votive are responsible for this) are disable by default, because it's partially broken. So you can try to enable it via adding the following to WIX project file: <PropertyGroup> <EnableProjectHarvesting>True</EnableProjectHarvesting> </PropertyGroup> Or (personally I prefer this way) you...
windows,batch-file,elasticsearch,wix,windows-installer
The .bat file is provided by elasticsearch and is incredibly cryptic. Please add the batch file so we can take a look. Installing with batch files is not good practice at all. It is error prone and vulnerable. The following was written before your final comment above: Run the...
wix,windows-installer,installer,msiexec
You have a typo in your Key attribute: It should be HARDWARE\DESCRIPTION\System\CentralProcessor\0...
Windows Installer doesn't support this. Java does a similar thing which is a pain. You'll need to write a custom action to enumerate the subkeys and set a property with the result. One concern would be do they allow multiple versions to be installed side by side?
wix,windows-installer,inno-setup,bootstrapper
Installer made in InnoSetup automatically adds itself to Add/Remove programs. If you do not have it there, you had to explicitly disable that using Uninstallable=no directive. Just enable it. Regarding how to uninstall .msi from Inno Setup uninstaller, see: Uninstall an msi during during Inno Setup uninstall...
c#,.net,windows-installer,versioning
Changing from comment to answer for better readability, and discussion of facts to your question and concerning environment: First let's see about your proposal of changing the value of DisplayVersion in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{MSI ProductCode} for 32 bit MSI setups (most setups operate still here, often even if containing 64-bit or independent...
wix,windows-installer,custom-action
According to the docs, you should specify an action=create create Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists ...
c++,windows,dll,windows-installer
You are most likely not installing the requred VC++ Runtime support files. The target machine will need whatever VC++ runtime architecture you're using, x64 or x86. Including the merge modules won't work because you're using SelfReg from the install, and they aren't available at the time that the registration happens...
asp.net,windows-installer,iis-6,repair
If you support 32 and 64-bit systems you need separate setups for both. http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx so you'd run the appropriate aspnet exe for the system, that might solve some problems. You haven't said if your setup is x86 or x64, so it's hard to say what the exact issue might be....
c#,asp.net,.net,https,windows-installer
Check this out Getting around Chrome's Malicious File Warning https://productforums.google.com/forum/#!topic/chrome/r-9JQIboUmc. Multiple options specified. Try one of them. This will surely help you....
windows-installer,chef,serverspec
I use test driven development, so I generally have one test per resource in my recipe. I write the tests first. So if my basic design is: I need to install xxx I need to fix the config file for xxx I need to start the xxx service Then I'd...
sql,wix,windows-installer,wix3.8
Conditions can be applied to Components, but a gotcha using multiple components is you can't rely on the components being installed in any particular order. However you can control the sequencing of scripts. See this related question: Can I ensure components installation order?. With this in mind, and you really...
asp.net,sql-server,iis,windows-installer,localhost
Yes, it is possible. You need to first select in an authoring tool for Windows Installer. Some examples are Windows Installer XML (WiX) and InstallShield (various editions from free to pricey). You'll have some kind of EXE bootstarpper/chainer where you can handle prerequisite installation such as windows features and database...
wix,windows-installer,installer,custom-action
When you're doing a major upgrade with WiX MajorUpgrade the WIX_UPGRADE_DETECTED is set - see: http://wixtoolset.org/documentation/manual/v3/xsd/wix/majorupgrade.html so that is what you use in the upgrade install to detect that there is an older product installed. In other words it means that the new incoming install has detected an older version...
That's not the way things are usually done because: Modify is universally understood in this context and dialog to mean adding or removing features. You can't properly do an upgrade from a dialog of an already installed product that is going to be removed. In other words your plan most...
deployment,installation,windows-installer,clickonce
ClickOnce is a per-user deployment experience and MSI is usually a per-machine experience. Per machine can't clean up other people's profiles. The only way I know is to do an active setup trick to run a program for each user who logs on and then execute a script to do...
mysql,batch-file,windows-installer
Finally found the solution, found out that the log file was showing 1729 and the next line showed configuration failed message. Searching for error code 1729 in MySQL error codes. I found Error: 1729 SQLSTATE: HY000 (ER_NO_SUCH_PARTITION) Message: partition '%s' doesn't exist Figured it may be as cmd was launching...
wix,windows-installer,patch,wix3.5,msiexec
If you want to do this the two MSIs then this is a starting point: http://wixtoolset.org/documentation/manual/v3/patching/patch_building.html Then there's WiX patching: http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html Or as a variation on the first one, you could create your own .PCP file and run msimsp from the Windows kit as described here: https://msdn.microsoft.com/en-us/library/aa367816(v=vs.85).aspx...
WixUI_Minimal isn't a good choice for what you are trying to do because it displays 1 dialog and then exits the wizard loop. A better approach would be to build upon the WixUI_FeatureTree experience. You can insert a dialog after the license dialog with this XML: <!-- Insert into dialog...
mysql,windows,windows-installer,nsis
Thanks @Seki for your reply. This code is working fine i am confuse between ${password} and $password and ${login} and $login thats why its not woking now i am correct that code and it works. ExecWait '$folder\bin\mysql --user=${deflogin} --password=${defpassword} --execute="grant all privileges on *.* to $\'$login$\' @ $\'${HOSTPORT}$\' identified by...
c,gcc,installation,windows-installer,install
I did not find an offline installer for MinGW,but instead I found a better Windows port; which is MinGW-W64 From http://mingw-w64.yaxm.org/doku.php: Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support...
logging,wix,installer,windows-installer
See: MsiLogging property The problem is it's only available starting with MSI 4.0. There's also a bug in Windows 7 where sometimes uninstall from Add/Remove programs will fail because explorer loses where the temp directory is. Additionally it creates Msiabcxyz.log (abcxyz is some random hash) in the TEMP directory that...
c#,visual-studio,visual-studio-2012,command-line,windows-installer
You've asked with a Windows Installer tag, so if we are talking about products installed from MSI files: Attempt 1 is incorrect because Windows Installer doesn't use the uninstallstring to uninstall products (change it and see if it makes a difference), and there are better ways. 2 uses WMI, and...
You can check the system's event log to determine what product is triggering the installation or repair. Please see these two posts for details: How can I determine what causes repeated Windows Installer self-repair? Uninstalling an MSI file from the command line without using msiexec Cleanup pending installation ...
windows-installer,powershell-v3.0
I would call msiexec directly and include the /I-switch (that's an i and not L) in the argumentlist. (Check msiexec /? on the command line for full options) In your case it would be something like the example below. Please take note to the double quotes around the full argumentlist....
The restart flag is not being set on false assumptions. There are various places in the installer log file that show the installer is trying to delete files, but is not able to because the files are locked by 1 or more processes: 592.MSI (s) (B0:58) [12:22:45:305]: Executing op: FileRemove(,FileName=asm-4.1.jar,,ComponentId={4E9A32EC-C065-4BA6-83C8-ADC327C94B12})...
windows-installer,guid,uninstall,msiexec,uninstaller
msiexec /I {ProductCode} won't initiate an uninstall, it will initiate a maintenance installation transaction (change, repair, remove) You likely want msiexec /x {ProductCode} /qb...
You are setting the value of LOGVALUE to "" within the below setproperty I believe that is breaking it by setting the value to nothing, set it to "[LOGVALUE]" or don't set it at all as the UI is setting the property value <SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty> ...
To know the properties of an MSI you can open it in Ocra. I took your code and add a loop to it, please mark the question as correct if it helps you. function Get-MsiDatabaseVersion { param ( [IO.FileInfo] $FilePath ) try { $windowsInstaller = New-Object -com WindowsInstaller.Installer $database =...
powershell,azure,windows-installer,startup
if your MSI-file is in the same directory like the cmd-file you have to us the following command msiexec /i "%~dp0azure-powershell.0.8.7.MSI" /qb %~dp0 is refering to cmd-file directory and in this case to the MSI-file. If you want to create a log-file use the /l and the logfilepath plus name...
Some text on the built-in dialogs can be changed with variables specified in the localization file for your language. This is a simpler task than if you are trying to change text that is not kept in a variable. This process is documented here. However, if that's the case, the...
Try setting ALLUSERS=1 on the msiexec.exe command line. This yields a per machine installation with shared shortcuts for all users: msiexec.exe /i File.msi ALLUSERS=1 This relates to the larger issue of "Installation context". Check out the linked MSDN documentation. Recommended links: All users/Current user installation with/without Administrative privileges Setting the...
mysql,visual-studio-2010,windows-installer,msiexec,silent-installer
Just to mention even more possibilities- some my colleagues mentioned (VS bootstrapper, burn): Just start writing a batch or script for calling the two MSIs after each other. Always a good starting point maybe, if you have no experience with MSI. Write your own mini setup.exe bootstrapper with 5 lines...
c++,visual-studio-2010,windows-installer,uninstaller
If you ever marked that file's properties in the setup as Permanent or SharedLegacyFile and installed it, then it will not be uninstalled. They are not settings you cam change in the project and expect them to change on the system because the system will have marked them for not...
visual-studio,wix,windows-installer,installer,heat
I suppose you could use external source files if that's acceptable - then you don't have a lengthy compression operation taking place during the build, just a file copy (which keeps getting faster - especially with flash drives). With techniques for making yourself a debug build, you can save a...
The Directory element Id attribute in WiX becomes the Directory Table Directory column in the build Windows Installer MSI database. During installation, directory resolution is performed by the CostFinalize Action. After this point you can Using a Directory Property in a Path. The directories in the Directory table specify the...
I found out that the installer uses HKLM, when I set MSIINSTALLPERUSER="" from the command line. So I compared the verbose logs of my installer initialized with MSIINSTALLPERUSER="" and MSIINSTALLPERUSER="1" and found out, that it sets ALLUSERS="1" if MSIINSTALLPERUSER was null. So I simply added the following line for the...
c#,windows-installer,dtf,wix3.9
If you need to be admin then you need to be admin. Allowing a limited user to change areas of the system that are restricted would be a security breach. You used the word "chain", so it looks like that InstallShield setup was a multiple-MSI install, perhaps with embedded...
command-line,windows-installer,uninstall,msiexec
The cached MSI file that is supposed to run the uninstall might be missing from the super-hidden MSI cache folder normally found at C:\windows\installer (formally at %SystemRoot%\Installer), or there is a crash in the uninstall sequence. Creating an uninstall log file could help (replace the truncated paths): msiexec.exe /X "C:\Test.msi"...
Yes, you can do that but you'll need a custom "VerifyReadyDlg" dialog. You can just show the "Upgrade" or "Install" button depending on the upgrade/install like it is done for other options which present there (Remove/Change/etc). Just check out the VerifyReadyDlg (the built-in wix dialog)....
Windows Installer identifies and reference counts components by their GUID; so basically what you need to do is to make sure that the common part components ("core") is included in both products with the same component guids. I.e. in principle you could achieve this not necessarily by creating a merge...
wix,windows-installer,conditional,condition,custom-action
You need to specify the condition inside the Custom element which runs your custom action. (This allows you to run the custom action multiple times in different locations in your sequence and with different conditions each time if desired). Example: <InstallExecuteSequence> <Custom Action="CreateRegistryEntries" After="CostInitialize"> NOT Installed AND NOT PATCH </Custom>...
Windows Installer doesn't persist properties across installation transactions. You have to save the property somewhere (like the registry) and then read it back in so that the property still has a value otherwise it'll be null. The repair likely didn't reinstall the components that create the shortcut and vdir so...
windows-services,windows-installer,updates,msiexec
In the right circumstances (signed MSI and MSP patch files) you don't even need to be admin to install a patch update, a non-admin can do it: https://msdn.microsoft.com/en-us/library/aa372388(v=vs.85).aspx...
.net,visual-studio,wix,windows-installer,installer
A custom actions gets executed at a certain step during the installation, depending on where you schedule it. In your case, you need to schedule the custom action to be executed after the standard action "LaunchConditions". By adding something like this in < InstalUISequence >: <Custom Action="WarnIfOutlookNotInstalled" After="LaunchConditions"><![CDATA[NOT Installed]]></Custom> ...
It is allowed to use an underscore in the user's name. This code works and the installation package correctly creates the user. <Component Id="Component_User" Guid="{1B55F3FB-6B0F-4EF9-89ED-DB3ECA9106A4}"> <util:User Id="MyNewUser" CreateUser="yes" Name="test_user" Password="test" PasswordNeverExpires="yes" RemoveOnUninstall="yes" UpdateIfExists="yes" /> <CreateFolder> <util:PermissionEx GenericAll="yes" User="test_user"/> </CreateFolder> </Component> The verbose log might have more information about the...
Take a look at REBOOTPROMPT property If the REBOOTPROMPT property is set to Suppress (or just S) any reboot performed by the Windows Installer happens automatically without interaction from the user. Setting this property does not initiate a reboot if one is not needed, it only suppresses the display of...
directory,wix,windows-installer
This structure should help you. Reference the id of CommonFilesFolder <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="Wix_setup" /> <Directory Id="CommonFilesFolder" /> </Directory> </Directory> </Fragment> this link might help you in future https://msdn.microsoft.com/en-us/library/s2esdf4x%28VS.80%29.aspx...
Set the Package/@InstallScope attribute to perMachine. The default in Windows Installer is to create per-user packages.
windows-installer,installshield
I got this working. The key was to set the value to "Deferred Execution in System Context". If just set to "Deferred Execution", it runs in user mode. Also, the "Admin Exec Sequence" is not called in this case. The .msi need to be run with /a to run this...
xml,wix,installer,windows-installer
The "flashing" you are seeing is likely due to the fact that you didn't author any UI. I blogged about this in "Are Dialogs Optional Now??" some 8 years ago and I was attacked for trolling (on my own blog??). I suggest taking a look at IsWiX. The visual studio...
installation,windows-installer,installer,msiexec
ProductCode is a private property and isn't being passed to the installer session. I don't see why you'd need it anyways as it's in the MSI that you are installing. You can uninstall using a ProductCode (by substituting it for the path to the MSI not by passing it as...
installation,wix,windows-installer,wix3.8
I figured it's not possible to install the database feature every time the installer is run, since it's bound to the Component GUID. Even though I managed to show the ConnectionStringInputDialog, it doesn't do anything the second time I run the same installer, since it knows that the feature is...
windows-installer,installer,installshield,multiple-instances
I selected point 1 route "Maintenance Experience" and that worked for me. I converted my project from InstallScript MSI Project to InstallScript Project. I got the compile time errors in Setup.rul file but I find the alternatives for those errors and fix them and make the script able to compile....
visual-studio-2013,wix,windows-installer,wix3.9
This is a known bug in WiX v3.9: http://wixtoolset.org/issues/3918/
c#,visual-studio-2013,windows-services,windows-installer
Since VS2013 does not contain the old (VS2010) Visual Studio installer project, I have these suggestions: Use WiX installer: https://wix.codeplex.com There is even a service installer template (not tested): https://visualstudiogallery.msdn.microsoft.com/7f35c8ce-1763-4340-b720-ab2d359009c5 Use VS 2013 install extension There were many complaints that MS abandoned the old setup project, so they brought it...
Someone from the WiX Mailing list pointed me to the Single Package Authoring article on msdn. I had to initialize the following properties: <Property Id='ALLUSERS' Value='2' /> <Property Id='MSIINSTALLPERUSER' Value='1' /> and set the 'MSIINSTALLPERUSER' property to an empty string for a per-Machine installation. <Publish Property="MSIINSTALLPERUSER" Value="{}">1</Publish> Be aware that...
It looks Windows Installer always displays Entire feature will be installed on local hard drive item even if there are no subfeatures. At least this item was present in all the cases that I tested where there were no visible subfeatures. It could also depend on the version of Windows...
wix,install,windows-installer,bootstrapper,burn
If you are doing a minor upgrade Burn will automatically detect that and pass the right switches for you. If you are trying to force it Burn does not support that.
installation,windows-installer,condition,installshield,uninstall
The scenario pair of "install and uninstall" is somewhat underspecified, so I would probably go with no condition, or the condition 1. Except you're talking about reboots, which should be avoided whenever possible. One way to limit it slightly is to avoid running the action during maintenance that does not...
Thanks for all the helpful comments. 1'st issue was indeed the lowercase GUID I was using. After sorting that out the installer still refused to install ("A newer version ..."). Then we found a very nice tool called SupperOrca that does a diff of 2 MSI's. The Diff showed that...
As well as Chris's advice, I'd stay away from the entire COM-type activation because it's completely unnecessary. There is a perfectly good Win32 API that can be used via p/invoke. Here's a minimal example I used once: public class MsiInvoke { [DllImport("msi", CharSet = CharSet.Auto)] public static extern int MsiOpenDatabase(string...
c#,wpf,visual-studio-2013,windows-7,windows-installer
Visual Studio Setup Project authors advertised shortcuts which is one of the mechanisms that MSI uses to determine if a repair is needed. It is detecting it is needed and attempting to do so but failing resulting in an infinite repair loop. Please read: Windows Installer launches unexpectedly, for no...