Issue 1:
I'm on Windows 7, with a username of 19 characters including 1 dot (not my choice, it's a company machine) - monusername.ADOMAIN below. Installer bombs out, log as follows:

Program: Starting Squirrel Updater: --install .

Program: Starting install, writing to C:\Users\monusername.ADOMAIN\AppData\Local\SquirrelTemp

CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\monusername.ADOMAIN\AppData\Local\atom\packages\RELEASES'.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)

at Squirrel.UpdateManager.CheckForUpdateImpl.d__28.MoveNext()

CheckForUpdateImpl: Reading RELEASES file from C:\Users\monusername.ADOMAIN\AppData\Local\SquirrelTemp

CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch

ApplyReleasesImpl: Writing files to app directory: C:\Users\monusername.ADOMAIN\AppData\Local\atom\app-0.177.0

IEnableLogger: Failed to write file: C:\Users\monusername.ADOMAIN\AppData\Local\atom\app-0.177.0: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

at System.IO.PathHelper.GetFullPathName()

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at NuGet.PhysicalPackageFile.GetStream()

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass8b.b__8a()

at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)

IEnableLogger: Failed to install package to app dir: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

at System.IO.PathHelper.GetFullPathName()

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at NuGet.PhysicalPackageFile.GetStream()

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass8b.b__8a()

at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)

at Squirrel.UpdateManager.ApplyReleasesImpl.copyFileToLocation(FileSystemInfo target, IPackageFile x)

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass84.b__80(IPackageFile x)

at System.Collections.Generic.List1.ForEach(Action1 action)

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass84.b__7f()

at System.Threading.Tasks.Task.InnerInvoke()

at System.Threading.Tasks.Task.Execute()

--- End of stack trace from previous location where exception was thrown ---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Squirrel.UpdateManager.ApplyReleasesImpl.d__86.MoveNext()

--- End of stack trace from previous location where exception was thrown ---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Squirrel.Utility.d__4b`1.MoveNext()

Any ideas?

Issue 2:
I download AtomSetup.exe

I run it as an administrator

I agree there are probably curious permission setups and my user directory is mapped to a central server.

I get no choices where to install from the installer.

Other applications have worked

I get the error dialog. Here's the log.

I can't alter where it tries to install, nor am I clear why the install path is too long.

Chocolatey didn't install 174.1 either - there's clearly something pathological in my setup.

Any chance of being able to configure where it installs to and from?

============SquirrelSetup.log============

Program: Starting Squirrel Updater: --install .

Program: Starting install, writing to C:\Users\john.drummond\AppData\Local\SquirrelTemp

CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\john.drummond\AppData\Local\atom\packages\RELEASES'.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)

at Squirrel.UpdateManager.CheckForUpdateImpl.d__28.MoveNext()

CheckForUpdateImpl: Reading RELEASES file from C:\Users\john.drummond\AppData\Local\SquirrelTemp

CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch

ApplyReleasesImpl: Writing files to app directory: C:\Users\john.drummond\AppData\Local\atom\app-0.174.0

IEnableLogger: Failed to write file: C:\Users\john.drummond\AppData\Local\atom\app-0.174.0: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

at System.IO.PathHelper.GetFullPathName()

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at NuGet.PhysicalPackageFile.GetStream()

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass8b.b__8a()

at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)

IEnableLogger: Failed to install package to app dir: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

at System.IO.PathHelper.GetFullPathName()

at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at NuGet.PhysicalPackageFile.GetStream()

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass8b.b__8a()

at Squirrel.Utility.LogIfThrows(IFullLogger This, LogLevel level, String message, Action block)

at Squirrel.UpdateManager.ApplyReleasesImpl.copyFileToLocation(FileSystemInfo target, IPackageFile x)

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass84.b__80(IPackageFile x)

at System.Collections.Generic.List1.ForEach(Action1 action)

at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass84.b__7f()

at System.Threading.Tasks.Task.InnerInvoke()

at System.Threading.Tasks.Task.Execute()

--- End of stack trace from previous location where exception was thrown ---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Squirrel.UpdateManager.ApplyReleasesImpl.d__86.MoveNext()

--- End of stack trace from previous location where exception was thrown ---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Squirrel.Utility.d__4b`1.MoveNext()