Files
velopack/docs/2.1-Integrating-Debugging.md
Ken Bailey 49b6b866bb Reformatting of docs with a Getting Started and Advanced topics section.
Removed /specs help files to avoid confusion.
2015-12-23 22:54:50 -07:00

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:
![](images/2.1-Integrating-Debugging-Dir.png)
## 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) |
|----|