c# - Squirrel.windows 在桌面上创建多个快捷方式

标签 c# github installation clickonce squirrel.windows

我们正在尝试使用 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);
    }
}

关于c# - Squirrel.windows 在桌面上创建多个快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42970309/

相关文章:

git - 远程 : repository not found fatal: not found

android - 启动应用程序(如果已安装),或使用安装引荐来源网址打开 Google Play

c# - WPF:仅在命令可以执行时才应用DataTemplate-Style

c# - 读取 Entity Framework 字段的最大长度并分配给 Razor View 中的文本框

c# - 在 Web 应用程序中的何处存储 Ninject IKernel?

git - 列出 Github 中特定用户在多个分支上的特定时间间隔内更改的所有文件

github - 从上游获取时,github 上的权限被拒绝(公钥)

python xgboost 在 mac 安装

php - 在 PHP 中制作可分发的独立程序

c# - 如何从 DataTemplate 获取绑定(bind)名称