Мое приложение выпущено в виде exe в двух версиях сборки - DeveloperBuild и ClientBuild (UAT).DeveloperBuild предназначен для внутренних разработчиков и тестирования QA, а ClientBuild для конечных пользователей.«DeveloperBuild» и «ClientBuild» на самом деле являются именами сборок.
Я хочу запретить пользователю открывать более одного экземпляра сборки. Проще говоря, пользователь должен иметь возможность открывать один экземпляр DeveloperBuild и одинодновременно с экземпляром ClientBuild, НО пользователю нельзя разрешать открывать более одного экземпляра DeveloperBuild или ClientBuild одновременно.
Это то, что я пробовал.Приведенный ниже код помогает мне поддерживать один экземпляр моего приложения, но он не различает Developer Build и Client Build.Я хочу, чтобы у пользователя было преимущество в открытии одного экземпляра каждой из двух сборок одновременно.
/// Точка входа в приложение
protected override void OnStartup(StartupEventArgs e)
{
const string sMutexUniqueName = "MutexForMyApp";
bool createdNew;
_mutex = new Mutex(true, sMutexUniqueName, out createdNew);
// App is already running! Exiting the application
if (!createdNew)
{
MessageBox.Show("App is already running, so cannot run another instance !","MyApp",MessageBoxButton.OK,MessageBoxImage.Exclamation);
Application.Current.Shutdown();
}
base.OnStartup(e);
//Initialize the bootstrapper and run
var bootstrapper = new Bootstrapper();
bootstrapper.Run();
}