Description
Squirrel version(s)
squirrel.windows.2.0.1 and possibly others
Description
Squirrel uses %localappdata%\SquirrelTemp
for various servicing tasks. Squirrel seems to allow simultanous installations to occur yet does not silo the temporary folder on a per-app basis. This appears to result in races for files in the temporary folder and can result in incorrect installations of various applications, wrong shortcuts, incorrect schema launches, etc. These installations are very difficult to repair and detremential to the user experience.
I believe this meets the bug bar for resolution under the Focus on the User Experience principle (#1470 (comment)) and the product's tag line Squirrel: It's like ClickOnce but Works™.
Steps to recreate
I highly recommend the use of a virtual machine or Windows Sandbox.
- Download Teams_windows_x64.exe from https://statics.teams.microsoft.com/production-windows-x64/1.6.00.6754/Teams_windows_x64.exe
- Download Scenario.zip (attached here)
scenario.zip - Extract Scenario.zip to a temporary location and move Teams_windows_x64.exe into this location so all three files are side-by-side
- Execute
scenario.cmd
and wait until completion - Run
ms-settings:installed-apps
or navigate to Settings > Apps > Installed Apps - Observe the included demo app with publisher Rafael is associated with Microsoft Teams
- Open Start and type
myapp
to begin a search. - Observe the included demo app has incorrect shortcuts
Tip: Alternatively, you can shorten the timeout and remove the process kill to demonstrate a real race. But results may vary across machine speeds.
Expected behavior
It should not be possible for Squirrel apps to read from or write over each other
Actual behavior
Squirrel apps compete for the temporary folder and behave indeterminately
Proposal
Use a product-specific (or randomly generated) path to silo apps from each other.