Squirrel.windows 在桌面上创建多个快捷方式
Squirrel.windows create multi shortcut on desktop
我们正在尝试使用 Squirrel.Windows 为我们的 .NET 应用程序创建安装程序
该应用程序包含多个 .exe 文件。
我们使用命令:
squirrel --releasify BIN_PATH\MyApp.2.0.33404.nupkg
但是,当运行 setup.exe时,它会在桌面上创建多个快捷方式对应多个.exe文件
如何指定只创建一个快捷方式?
Squirrel documentation 声明为包中的每个 EXE 创建快捷方式是默认行为。
同样的 documentation page 解释说,要覆盖默认行为,您需要至少让一个 EXE Squirrel 知道,然后根据需要实现 Squirrel 事件处理程序。
您最好通过将以下内容添加到其 AssemblyInfo.cs
:
来使您想要的 EXE 成为 Squirrel 可识别的快捷方式
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
然后在你的 EXE 文件中实现像这样的 Squirrel 事件:
static bool ShowTheWelcomeWizard;
...
static int Main(string[] args)
{
// NB: Note here that HandleEvents is being called as early in startup
// as possible in the app. This is very important! Do _not_ call this
// method as part of your app's "check for updates" code.
using (var mgr = new UpdateManager(updateUrl))
{
// Note, in most of these scenarios, the app exits after this method
// completes!
SquirrelAwareApp.HandleEvents(
onInitialInstall: v => mgr.CreateShortcutForThisExe(),
onAppUpdate: v => mgr.CreateShortcutForThisExe(),
onAppUninstall: v => mgr.RemoveShortcutForThisExe(),
onFirstRun: () => ShowTheWelcomeWizard = true);
}
}
我们正在尝试使用 Squirrel.Windows 为我们的 .NET 应用程序创建安装程序 该应用程序包含多个 .exe 文件。 我们使用命令:
squirrel --releasify BIN_PATH\MyApp.2.0.33404.nupkg
但是,当运行 setup.exe时,它会在桌面上创建多个快捷方式对应多个.exe文件 如何指定只创建一个快捷方式?
Squirrel documentation 声明为包中的每个 EXE 创建快捷方式是默认行为。
同样的 documentation page 解释说,要覆盖默认行为,您需要至少让一个 EXE Squirrel 知道,然后根据需要实现 Squirrel 事件处理程序。
您最好通过将以下内容添加到其 AssemblyInfo.cs
:
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
然后在你的 EXE 文件中实现像这样的 Squirrel 事件:
static bool ShowTheWelcomeWizard;
...
static int Main(string[] args)
{
// NB: Note here that HandleEvents is being called as early in startup
// as possible in the app. This is very important! Do _not_ call this
// method as part of your app's "check for updates" code.
using (var mgr = new UpdateManager(updateUrl))
{
// Note, in most of these scenarios, the app exits after this method
// completes!
SquirrelAwareApp.HandleEvents(
onInitialInstall: v => mgr.CreateShortcutForThisExe(),
onAppUpdate: v => mgr.CreateShortcutForThisExe(),
onAppUninstall: v => mgr.RemoveShortcutForThisExe(),
onFirstRun: () => ShowTheWelcomeWizard = true);
}
}