diff --git a/samples/UnoSample/README.md b/samples/UnoSample/README.md
index 09e409e3..2dc09858 100644
--- a/samples/UnoSample/README.md
+++ b/samples/UnoSample/README.md
@@ -5,44 +5,14 @@ This solution contains an Uno Desktop application that targets both Windows and
## Prerequisites
This solution will publish the application out to the Velopack Flow service. To test the full publish you will need to create a [Velopack Flow account](https://app.velopack.io).
-The solution assumes that you have downloaded and installed the Velopack CLI (`vpk`) global tool. This tool can be installed by running `dotnet tool install -g vpk`. You will then need ot authenticate with the Velopack Flow servie by running `vpk login` and signing in with your Velopack Flow account.
+The solution assumes that you have downloaded and installed the Velopack CLI (`vpk`) global tool. This tool can be installed by running `dotnet tool install -g vpk`.
+You will need to authenticate with the Velopack Flow service by running `vpk login` and signing in with your Velopack Flow account.
## The Application
-Inside of `Presentation` the `MainPage.xaml` contains the main UI for viewing the current version, checking for updates, and applying the latest update.
+`Presentation/MainPage.xaml` contains the main UI for viewing the current version, checking for updates, and applying the latest update.
The `MainViewModel.cs` contains the logic for checking for updates and applying them. The key piece of the setup is the initialization of the `UpdateManager` with the `VelopackFlowUpdateSource` which provides the interaction with the Velopack Flow service.
-The `Main` methods in the `Platforms\Desktop\Program.cs` has been updated to contain the [Velopack application startup hook](https://docs.velopack.io/integrating/overview).
-
-The `Main` methods in the `Platforms\MacCatalyst\Main.maccatalyst.cs` has been updated to contain the [Velopack application startup hook](https://docs.velopack.io/integrating/overview).
-
-Finally, for the WinUI platform, a little more work is needed as the `Main` method is auto-generated by default.
-First, the generation of the `Main` method needs to be disabled by defining `DISABLE_XAML_GENERATED_MAIN` constant in the csproj.
-```xml
-
- $(DefineConstants);DISABLE_XAML_GENERATED_MAIN
-
-```
-Next the `Main` method needs to be added so a new `Platforms\Windows\Program.cs` file is added with a standard content, and the [Velopack application startup hook](https://docs.velopack.io/integrating/overview):
-```csharp
-[STAThread]
-public static void Main(string[] args)
-{
- // It's important to Run() the VelopackApp as early as possible in app startup.
- VelopackApp.Build()
- .WithFirstRun((v) => { /* Your first run code here */ })
- .Run();
-
- WinRT.ComWrappersSupport.InitializeComWrappers();
-
- Application.Start((p) =>
- {
- var context = new DispatcherQueueSynchronizationContext(
- DispatcherQueue.GetForCurrentThread());
- SynchronizationContext.SetSynchronizationContext(context);
- new App();
- });
-}
-```
+The `App.xaml.cs` has been updated to contain the [Velopack application startup hook](https://docs.velopack.io/integrating/overview).
### Updating the Project file
There are two properties to set in the `csproj` file to enable the Velopack Flow integration. These are:
@@ -51,12 +21,19 @@ There are two properties to set in the `csproj` file to enable the Velopack Flow
Velopack.UnoSample
```
-`VelopackPackId` is the unique identifier for the application. This is used to identify the application in the Velopack Flow service. It must be unique among all applications.
+`VelopackPackId` is the unique identifier for the application. This is used to identify the application in the Velopack Flow service. It must be unique among all applications.You **MUST** change this to be your own application identifier.
`VelopackPushOnPublish` is a boolean value that determines if the application should be pushed to the Velopack Flow service when it is published. This should be set to `true` to enable the integration.
### Building installers
To build the local installers run the following command replacing `` with the desired version number.
-The `-f` option is used to specify the target framework. This can be any of the desktop frameworks specified in the `csproj` file.
+The `-f` option is used to specify the target framework. Because each target platform should result in a different build, you likely will want to specify a different Velopack channel for each target platform. By default, it will default to your target OS. You can specify the channel by adding `-p:VelopackChannel=` to the command.
+
+This can be any of the desktop frameworks specified in the `csproj` file.
```bash
-dotnet publish -c Release -f net8.0-desktop -p:Version=
+dotnet publish -c Release -f net8.0-desktop -p:VelopackChannel= -p:Version=
+```
+
+For example:
+```bash
+dotnet publish -c Release -f net8.0-desktop -p:VelopackChannel=win-desktop -p:Version=1.0.5
```
diff --git a/samples/UnoSample/UnoSample.sln b/samples/UnoSample/UnoSample.sln
index 1e12cd07..787f438b 100644
--- a/samples/UnoSample/UnoSample.sln
+++ b/samples/UnoSample/UnoSample.sln
@@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Build.targets = Directory.Build.targets
Directory.Packages.props = Directory.Packages.props
global.json = global.json
+ README.md = README.md
EndProjectSection
EndProject
Global
diff --git a/samples/UnoSample/UnoSample/App.xaml.cs b/samples/UnoSample/UnoSample/App.xaml.cs
index 2a881e1e..26a1a4ae 100644
--- a/samples/UnoSample/UnoSample/App.xaml.cs
+++ b/samples/UnoSample/UnoSample/App.xaml.cs
@@ -1,4 +1,5 @@
using Uno.Resizetizer;
+using Velopack;
namespace UnoSample;
public partial class App : Application
@@ -9,6 +10,11 @@ public partial class App : Application
///
public App()
{
+ // It's important to Run() the VelopackApp as early as possible in app startup.
+ VelopackApp.Build()
+ .WithFirstRun((v) => { /* Your first run code here */ })
+ .Run();
+
this.InitializeComponent();
}
diff --git a/samples/UnoSample/UnoSample/Platforms/Desktop/Program.cs b/samples/UnoSample/UnoSample/Platforms/Desktop/Program.cs
index 3e9601f0..37959b14 100644
--- a/samples/UnoSample/UnoSample/Platforms/Desktop/Program.cs
+++ b/samples/UnoSample/UnoSample/Platforms/Desktop/Program.cs
@@ -1,5 +1,4 @@
using Uno.UI.Runtime.Skia;
-using Velopack;
namespace UnoSample;
public class Program
@@ -7,11 +6,6 @@ public class Program
[STAThread]
public static void Main(string[] args)
{
- // It's important to Run() the VelopackApp as early as possible in app startup.
- VelopackApp.Build()
- .WithFirstRun((v) => { /* Your first run code here */ })
- .Run();
-
#if (!useDependencyInjection && useLoggingFallback)
App.InitializeLogging();
diff --git a/samples/UnoSample/UnoSample/Platforms/MacCatalyst/Main.maccatalyst.cs b/samples/UnoSample/UnoSample/Platforms/MacCatalyst/Main.maccatalyst.cs
index 0cd78a0e..32579dc0 100644
--- a/samples/UnoSample/UnoSample/Platforms/MacCatalyst/Main.maccatalyst.cs
+++ b/samples/UnoSample/UnoSample/Platforms/MacCatalyst/Main.maccatalyst.cs
@@ -1,5 +1,4 @@
using UIKit;
-using Velopack;
namespace UnoSample.MacCatalyst;
public class EntryPoint
@@ -7,11 +6,6 @@ public class EntryPoint
// This is the main entry point of the application.
public static void Main(string[] args)
{
- // It's important to Run() the VelopackApp as early as possible in app startup.
- VelopackApp.Build()
- .WithFirstRun((v) => { /* Your first run code here */ })
- .Run();
-
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main(args, null, typeof(App));
diff --git a/samples/UnoSample/UnoSample/Platforms/Windows/Program.cs b/samples/UnoSample/UnoSample/Platforms/Windows/Program.cs
index bffedb4d..c0e01031 100644
--- a/samples/UnoSample/UnoSample/Platforms/Windows/Program.cs
+++ b/samples/UnoSample/UnoSample/Platforms/Windows/Program.cs
@@ -2,25 +2,22 @@ using Microsoft.UI.Dispatching;
using Velopack;
namespace UnoSample;
-public static class Program
-{
- // https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/guides/applifecycle?WT.mc_id=DT-MVP-5003472#single-instancing-in-main-or-wwinmain
- [STAThread]
- public static void Main(string[] args)
- {
- // It's important to Run() the VelopackApp as early as possible in app startup.
- VelopackApp.Build()
- .WithFirstRun((v) => { /* Your first run code here */ })
- .Run();
+//public static class Program
+//{
+// // https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/guides/applifecycle?WT.mc_id=DT-MVP-5003472#single-instancing-in-main-or-wwinmain
+// [STAThread]
+// public static void Main(string[] args)
+// {
- WinRT.ComWrappersSupport.InitializeComWrappers();
- Application.Start((p) =>
- {
- var context = new DispatcherQueueSynchronizationContext(
- DispatcherQueue.GetForCurrentThread());
- SynchronizationContext.SetSynchronizationContext(context);
- new App();
- });
- }
-}
+// WinRT.ComWrappersSupport.InitializeComWrappers();
+
+// Application.Start((p) =>
+// {
+// var context = new DispatcherQueueSynchronizationContext(
+// DispatcherQueue.GetForCurrentThread());
+// SynchronizationContext.SetSynchronizationContext(context);
+// new App();
+// });
+// }
+//}
diff --git a/samples/UnoSample/UnoSample/UnoSample.csproj b/samples/UnoSample/UnoSample/UnoSample.csproj
index f7871837..880d17f9 100644
--- a/samples/UnoSample/UnoSample/UnoSample.csproj
+++ b/samples/UnoSample/UnoSample/UnoSample.csproj
@@ -54,9 +54,9 @@
-
+