mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
| [Squirrel.Windows](../README.md) / [2\. Advanced Usage](2-Advanced-Usage.md) / [2.1 More Integrating](2.1-More-Integrating.md)|
|
|
|:---|
|
|
|
|
# 2.1 Integrating: Debugging
|
|
|
|
The following tips will help you to debug the integration of the update process in your application.
|
|
|
|
## Update.exe not found?
|
|
|
|
Executing MyApp from Visual Studio will execute the update process and you will get the following exception from the `UpdateManager`:
|
|
|
|
~~~
|
|
Update.exe not found, not a Squirrel-installed app?
|
|
~~~
|
|
|
|
The `UpdateManager` is expecting to find the `Update.exe` application installed one directory up from the EXE (e.g., the `\bin` directory for default Visual Studio projects).
|
|
|
|
To resolve this, you can simply place a file named `Update.exe` or you can copy the `Squirrel.exe` from the `MyApp\packages\squirrel.windows.1.2.2.tools` directory and rename it Update.exe (this is the actual Update.exe packaged inside `Setup.exe`).
|
|
|
|
Executing MyApp from Visual Studio will now cause it to complete the update process and your `\bin` directory will resemble the `%LocalAppData\MyApp%` install directory:
|
|
|
|

|
|
|
|
## Simulating an Install and First Run
|
|
|
|
If the install of your application doesn't seem to be working, you can explore the behavior by executing the install steps from the command line:
|
|
|
|
~~~ps
|
|
C:\user\AppData\Local\MyApp> Update.exe --squirrel-install 1.0.0
|
|
C:\user\AppData\Local\MyApp> Update.exe --squirrel-firstrun
|
|
~~~
|
|
|
|
The first cmd should create some shortcuts then immediately exit, then the 2nd one should start your app ([source](https://github.com/Squirrel/Squirrel.Windows/issues/525))
|
|
|
|
## Catching Update Exceptions
|
|
|
|
You can catch thrown exceptions and log the results.
|
|
|
|
~~~cs
|
|
Task.Run(async () =>
|
|
{
|
|
try
|
|
{
|
|
using (var mgr = new UpdateManager("C:\\Projects\\MyApp\\Releases"))
|
|
{
|
|
await mgr.UpdateApp();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// perform logging here or inform user here...
|
|
}
|
|
});
|
|
~~~
|
|
|
|
Alternatively, set up Splat Logging, see [here](https://github.com/Squirrel/Squirrel.Windows.Next/blob/6d7ae23602a3d9a7636265403d42c1090260e6dc/src/Update/Program.cs#L53) for an example.
|
|
|
|
|
|
---
|
|
| Return: [2.1 More Integrating](2.1-More-Integrating.md) |
|
|
|----| |