docs / faq.md |
---|
Frequently Asked Questions for Squirrel.Windows, organized by area below.
- Can Squirrel.Windows be used on applications that aren't made with .Net?
Yes, you can package a non-c# application in the same manner as described in the Getting Started guide. For additional customization, see custom squirrel events for non-c# apps. - How do I migrate a ClickOnce app to Squirrel?
You may want to look into the ClickOnceToSquirrelMigrator migration helper. - How can I determine if my app is a Squirrel app? I provide a squirrel and non-squirrel install version and want to know which is running.
You can check for theUpdate.exe
in the parent directory to determine if the app is using Squirrel (see #574).
var assembly = Assembly.GetEntryAssembly();
var updateDotExe = Path.Combine(Path.GetDirectoryName(assembly.Location), "..", "Update.exe");
var isSquirrelInstall = File.Exists(updateDotExe);
- How can I tell what is going wrong with the releasify?
Checkpackages\Squirrel.Windows.VERSION\tools\SquirrelSetup.log
for logging information when creating packages. - Do I really have to add all the Squirrel DLLs to my app ? Yes, you have to add them all to the NuGet package, however, others have used ILMerge to generate a single assembly.
- Can I distribute update files on IIS?
Yes you can, see Microsoft IIS for details.
- The Initial Install via
Setup.exe
is failing. How do I learn what is going wrong?
Check%LocalAppData%\SquirrelTemp\SquirrelSetup.log
for logs related to the initial install. - Installer application doesn't do anything. The animation flashes but the application never starts.
The app is likely crashing on the first run (see Debugging Installs for details). - The Installer seems to be blocked in Enterprise environments. How can I confirm this?
Squirrel may be prevented from installing if Group Policy disallows the running of executables from%LocalAppData%
. In this case, the "show log" button on the "installation failed" dialog will fail becauseUpdate.exe
can not run to create a log file.
TheSetup.exe
for your application should still copy files to%LocalAppData%\SquirrelTemp
as a pre-installation step. To verify that Group Policy is restricting you, executeUpdate.exe
from the command line as follows:The best course of action is to request that executables for Squirrel and your application be whitelisted by your corporate overlords.C:\>%LocalAppData\MyApp\Update.exe This program is blocked by group policy. For more information, contact your system administrator.
- No Shortcuts are Created for my Application
Verify that the NuGet Package Metadataid
property doesn't have a space or [dot] in it. - Can I use a different name for the
Setup.exe
install application?
Yes, you can rename theSetup.exe
to what ever you wish (e.g.,MyAppSetup.exe
) (see #611) - Virus scanner is returning false positives on
MyApp.exe
orUpdate.exe
. What can I do?
Application Signing will help. In addition, you can submit false positives to the various antivirus authors (e.g., Symantec, Microsoft, AVG, Comodo, McAfee, List of Submission Locations, see #218). - Why is my application icon mangled after installation?
Application icons specified in the NuGet Package Metadata must be of type icon (.ICO) rather than an image file (source: issue #745)
- How do I determine what is going wrong with the UpdateManager in MyApp?
You can setup your\bin
directory so you can execute MyApp in the Visual Studio debugger and simply step through the update process as well as catch exceptions and log the results (see Debugging Updates for details) - I've Distributed a Broken Copy of Update.exe. How can I fix this?
Sometimes, you might ship a broken copy ofUpdate.exe
that succeeds the initial install, but doesn't do what you want for some reason. To fix this, you can force an update of theUpdate.exe
by including a copy ofSquirrel.exe
in your app update package. If Squirrel sees this, it will copy in this latest version to the local app installation. - How can you replace DLLs while they're loaded? Impossible!
You can't. So, how can you do it? The basic trick that ClickOnce uses is, you have a folder of EXEs and DLLs, and an Application Shortcut. When ClickOnce goes to update its stuff, it builds a completely new folder of binaries, then the last thing it does is rewrite the app shortcut to point to the new folder. - My previous application version is still around after the update. Doesn't Squirrel clean up old versions?
The current and immediately previous version of your application are not deleted on clean up (see issue #589). - How can I persist the .NET Application Settings after an update?
See (#198 (comment)) for a simple workaround if you want to keep using .NET Application Settings. Alternatively, consider using a solution that lets you control where the settings are persisted, and store settings in an app-specific location under
%LOCALAPPDATA%
.
Return: Table of Contents |
---|