Olyd.Wpf.SingleStartup 1.0.1

dotnet add package Olyd.Wpf.SingleStartup --version 1.0.1                
NuGet\Install-Package Olyd.Wpf.SingleStartup -Version 1.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Olyd.Wpf.SingleStartup" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Olyd.Wpf.SingleStartup --version 1.0.1                
#r "nuget: Olyd.Wpf.SingleStartup, 1.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Olyd.Wpf.SingleStartup as a Cake Addin
#addin nuget:?package=Olyd.Wpf.SingleStartup&version=1.0.1

// Install Olyd.Wpf.SingleStartup as a Cake Tool
#tool nuget:?package=Olyd.Wpf.SingleStartup&version=1.0.1                

Olyd.Wpf.SingleStartup

WPF 单例进程启动解决方案

使用手册

  1. App 类继承 ISingleApp, 实现 NextRun 方法(另一个进程启动时调用的方法)
  2. OnStartup 方法优点调用以下代码:
  protected override void OnStartup(StartupEventArgs e)
  {
      var singlestartup = new SingletonStartUp(this);
      singlestartup.Run(e.Args);
      // .....
  }

如果使用 Costura.Fody 整合了所有的依赖项,不能使用上述的是方法,需要替换成内部类实现 ISingleApp 接口。 使用示例如下:

public partial class App : Application
{
  // 实现 ISingleApp
  private class SingleApp : ISingleApp
  {
      private Action<string[]> _nextRunAction;

      public SingleApp(Action<string[]> nextRunAction)
      {
          _nextRunAction = nextRunAction;
      }

      // 可以指定唯一标识名称,不提供的话,默认是exe名称
      public string? InstanceID { get; set; }

      public void NextRun(string[] args) => _nextRunAction?.Invoke(args);
  }

  protected override void OnStartup(StartupEventArgs e)
  {
      var singlestartup = new SingletonStartUp(new SingleApp(NextRun));
      singlestartup.Run(e.Args);

      // ....
  }

  // NextRun 显示主界面或者其他逻辑
  private void NextRun(string[] args)
  {
  }
}
Product Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 76 12/20/2024
1.0.0 72 12/20/2024