I have an app that uses wyUpdate.exe to perform updates. I just call it in code and use the return value similar to how it is outlined in the silent update procedure. When I initially started integrating wyUpdate into this application, I had though I would use the AutomaticUpdater for WPF and added a reference in my application to that library. I then built the MSI using Visual Studio and installed the app on several machines (all remote).
Today I was doing some fixes on this app and realized "I don't need that reference to AutomaticUpdaterWPF anymore" and removed it, which obviously also removed the need to have AutomaticUpdaterWPF.dll in my program's install folder. I then built my update with wyBuild and left AutomaticUpdaterWPF.dll out of this version's files and as expected, when client's updated, this file was removed from their installations.
The problem I had was, with this file now gone, the next time the users tried to open the application, they got the repair dialog with the "Trying to use a resource from another location, please pick where it is now" dialog wanting them to point to the original installation MSI. Manually copying the missing dll into their install folders cleared it right up. I have since quickly rebuilt the updates including the missing file to avoid any further users from running into this issue.
Now, I realize that this is an MSI issue (as in not a wyBuild issue) and it could have been any dll that was missing. My question is, can you help me figure out how to build my MSIs so that I can remove files from the installation without causing it to want to repair it like this?