I'm creating a Windows Installer (.msi) files by Visual Studio Setup Project. When run .msi file, if target folder already existed and had some files and subfolders then how can i delete them before install my application ? I have already searched but not found solution.
Visual Studio Setup Project: How to delete all legacy files and folders in target folder before install my application?
1.6k views Asked by TuanPM At
1
There are 1 answers
Related Questions in VISUAL-STUDIO
- Expression Design 4 export for Windows Phone 8.1
- Large image making webpage slow
- illustrator moving objects using arrow keys
- SVG to Ico using icomoon generates multiple path instead of single object glyph
- How do I get rid of a 3D grid overlaying my artboard in Ilustrator?
- How can we convert CMYK to RGB in illustrator script?
- Selecting duplicate id's from an SVG exported from Illustrator in d3.js
- How do I set http headers in Adobe Illustrator ExtendScript when using the BridgeTalk HttpConnection object?
- AIHostAdapter events not working in adobe illustrator 2015?
- difference in svg rendering between browser and Illustrator
Related Questions in WINDOWS-INSTALLER
- Expression Design 4 export for Windows Phone 8.1
- Large image making webpage slow
- illustrator moving objects using arrow keys
- SVG to Ico using icomoon generates multiple path instead of single object glyph
- How do I get rid of a 3D grid overlaying my artboard in Ilustrator?
- How can we convert CMYK to RGB in illustrator script?
- Selecting duplicate id's from an SVG exported from Illustrator in d3.js
- How do I set http headers in Adobe Illustrator ExtendScript when using the BridgeTalk HttpConnection object?
- AIHostAdapter events not working in adobe illustrator 2015?
- difference in svg rendering between browser and Illustrator
Related Questions in VISUAL-STUDIO-SETUP-PROJE
- Expression Design 4 export for Windows Phone 8.1
- Large image making webpage slow
- illustrator moving objects using arrow keys
- SVG to Ico using icomoon generates multiple path instead of single object glyph
- How do I get rid of a 3D grid overlaying my artboard in Ilustrator?
- How can we convert CMYK to RGB in illustrator script?
- Selecting duplicate id's from an SVG exported from Illustrator in d3.js
- How do I set http headers in Adobe Illustrator ExtendScript when using the BridgeTalk HttpConnection object?
- AIHostAdapter events not working in adobe illustrator 2015?
- difference in svg rendering between browser and Illustrator
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
For an upgrade this should help:
https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/?_ga=2.123102924.696294303.1504290215-1234024276.1504290215
Basically update the setup project's version, accept changes, set RemovePreviousVersions to true when building your upgrade MSI. In addition (not in the article) you must increment the file versions of binaries that are being upgraded. This will do an uninstall of the older product as it installs the new version.
The post doesn't say where the temp files are, but if they are data files or temp files the app shouldn't be creating them in (say) the Program Files folder because it's not the recommended place (there are well defined folders for temp files, such as the Temp Folder), and it requires elevation to write/update files in Program Files so the app is therefore limited to admin users.
Uninstalls don't remove files created by the app (you wouldn't want an uninstall of Word to remove all your doc files) so it might be easier for the app to either not create them there in the first place, or remove them when it first starts up. The normal code solution for uninstalls would be an uninstall custom action in your older product that removes them, but if that old version is already shipped then it's too late.
Also, in a fresh install (even if it's an upgrade) the user could choose to install to another location, if you show the browse dialog to choose the Application Folder, and that means that the files are left in some orphaned Program Files folder, for example.