Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional desktop shortcut (Windows) #12803

Open
1 task done
LCernei opened this issue Apr 17, 2024 · 0 comments
Open
1 task done

Optional desktop shortcut (Windows) #12803

LCernei opened this issue Apr 17, 2024 · 0 comments

Comments

@LCernei
Copy link

LCernei commented Apr 17, 2024

Is there an existing request for this feature?

  • I have searched the existing issues for this feature request and I know that duplicates will be closed

Is your feature request related to a problem?

When I try to install Postman (v10.24.16) (on win11) and it is not able to create a desktop shortcut, it fails the entire installation.
The shortcut is not an important/crucial part of the app. It should be optional.
(I specifically removed write permissions for the Desktop folder and want to keep it this way)

Describe the solution you'd like

An postman installer with optional shortcut creation, or at least to not fail the entire installation if the shortcut creation fails.

Describe alternatives you've considered

An alternative would be to allow the shortcut creation, or to delete it after installation, but it does not match my preferences.

Additional context

Screenshot

image

Logs
  [17/04/24 15:43:48] info: Program: Starting Squirrel Updater: --install .
  [17/04/24 15:43:48] info: Program: Starting install, writing to C:\Users\myUser\AppData\Local\SquirrelTemp
  [17/04/24 15:43:48] info: Program: About to install to: C:\Users\myUser\AppData\Local\Postman
  [17/04/24 15:43:48] warn: Program: Install path C:\Users\myUser\AppData\Local\Postman already exists, burning it to the ground
  [17/04/24 15:43:48] info: CheckForUpdateImpl: Reading RELEASES file from C:\Users\myUser\AppData\Local\SquirrelTemp
  [17/04/24 15:43:48] info: CheckForUpdateImpl: First run, starting from scratch
  [17/04/24 15:43:49] info: ApplyReleasesImpl: Writing files to app directory: C:\Users\myUser\AppData\Local\Postman\app-10.24.16
  [17/04/24 15:43:50] info: LogHost: Rigging execution stub for Postman_ExecutionStub.exe to C:\Users\myUser\AppData\Local\Postman\Postman.exe
  [17/04/24 15:43:52] info: ApplyReleasesImpl: Squirrel Enabled Apps: []
  [17/04/24 15:43:52] warn: ApplyReleasesImpl: No apps are marked as Squirrel-aware! Going to run them all
  [17/04/24 15:43:52] info: ApplyReleasesImpl: About to create shortcuts for Postman.exe, rootAppDir C:\Users\myUser\AppData\Local\Postman\
  [17/04/24 15:43:52] info: ApplyReleasesImpl: Creating shortcut for Postman.exe => C:\Users\myUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Postman\Postman.lnk
  [17/04/24 15:43:52] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Postman\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:52] info: ApplyReleasesImpl: Creating shortcut for Postman.exe => C:\Users\myUser\Desktop\Postman.lnk
  [17/04/24 15:43:52] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\Desktop\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:53] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\Desktop\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:53] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\Desktop\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:53] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\Desktop\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:53] info: ApplyReleasesImpl: About to save shortcut: C:\Users\myUser\Desktop\Postman.lnk (target C:\Users\myUser\AppData\Local\Postman\Postman.exe, workingDir C:\Users\myUser\AppData\Local\Postman\app-10.24.16, args , toastActivatorCSLID d56d0ae8-2c2a-5b45-bd3b-9973bc69da9e)
  [17/04/24 15:43:53] error: IEnableLogger: Can't write shortcut: C:\Users\myUser\Desktop\Postman.lnk: System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
     at Squirrel.Shell.ShellLink.IPersistFile.Save(String pszFileName, Boolean fRemember)
     at Squirrel.Shell.ShellLink.Save(String linkFile)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass5_1.<CreateShortcutsForExecutable>b__1()
     at Squirrel.Utility.<>c__DisplayClass8_0.<Retry>b__0()
     at Squirrel.Utility.Retry[T](Func`1 block, Int32 retries)
     at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)
  [17/04/24 15:43:53] error: IEnableLogger: Failed to invoke post-install: System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
     at Squirrel.Shell.ShellLink.IPersistFile.Save(String pszFileName, Boolean fRemember)
     at Squirrel.Shell.ShellLink.Save(String linkFile)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass5_1.<CreateShortcutsForExecutable>b__1()
     at Squirrel.Utility.<>c__DisplayClass8_0.<Retry>b__0()
     at Squirrel.Utility.Retry[T](Func`1 block, Int32 retries)
     at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)
     at Squirrel.UpdateManager.ApplyReleasesImpl.CreateShortcutsForExecutable(String exeName, ShortcutLocation locations, Boolean updateOnly, String programArguments, String icon)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<invokePostInstall>b__4(String x)
     at System.Collections.Generic.List`1.ForEach(Action`1 action)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.Utility.<LogIfThrows>d__42.MoveNext()
  [17/04/24 15:43:53] fatal: Finished with unhandled exception: System.AggregateException: One or more errors occurred. ---> System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
     at Squirrel.Shell.ShellLink.IPersistFile.Save(String pszFileName, Boolean fRemember)
     at Squirrel.Shell.ShellLink.Save(String linkFile)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass5_1.<CreateShortcutsForExecutable>b__1()
     at Squirrel.Utility.<>c__DisplayClass8_0.<Retry>b__0()
     at Squirrel.Utility.Retry[T](Func`1 block, Int32 retries)
     at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)
     at Squirrel.UpdateManager.ApplyReleasesImpl.CreateShortcutsForExecutable(String exeName, ShortcutLocation locations, Boolean updateOnly, String programArguments, String icon)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<invokePostInstall>b__4(String x)
     at System.Collections.Generic.List`1.ForEach(Action`1 action)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.Utility.<LogIfThrows>d__42.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.Update.Program.<Install>d__4.MoveNext()
     --- End of inner exception stack trace ---
     at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
     at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
     at Squirrel.Update.Program.executeCommandLine(String[] args)
     at Squirrel.Update.Program.main(String[] args)
  ---> (Inner Exception #0) System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
     at Squirrel.Shell.ShellLink.IPersistFile.Save(String pszFileName, Boolean fRemember)
     at Squirrel.Shell.ShellLink.Save(String linkFile)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass5_1.<CreateShortcutsForExecutable>b__1()
     at Squirrel.Utility.<>c__DisplayClass8_0.<Retry>b__0()
     at Squirrel.Utility.Retry[T](Func`1 block, Int32 retries)
     at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)
     at Squirrel.UpdateManager.ApplyReleasesImpl.CreateShortcutsForExecutable(String exeName, ShortcutLocation locations, Boolean updateOnly, String programArguments, String icon)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<invokePostInstall>b__4(String x)
     at System.Collections.Generic.List`1.ForEach(Action`1 action)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.Utility.<LogIfThrows>d__42.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
  --- End of stack trace from previous location where exception was thrown ---
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Squirrel.Update.Program.<Install>d__4.MoveNext()<---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants