public async Task Test_StartupException() { bool isDisposed = false; AssemblyUtils.SetEntryAssembly(GetType().Assembly); var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName(ApplicationName) .WithScanDirectories( TestAssemblyDirectories ) // Add all file starting with Dapplo and ending on .dll .WithAssemblyPatterns("Dapplo*") .BuildApplicationConfig(); using (var bootstrapper = new ApplicationBootstrapper(applicationConfig)) { bootstrapper.Configure(); // Makes the startup break bootstrapper.Builder.Register(context => true); bootstrapper.RegisterForDisposal(SimpleDisposable.Create(() => isDisposed = true)); // Initialize, so we can export Assert.True(await bootstrapper.InitializeAsync().ConfigureAwait(false), "Not initialized"); // Start the composition, and IStartupActions await Assert.ThrowsAsync <NotSupportedException>(async() => await bootstrapper.StartupAsync().ConfigureAwait(false)); } // Dispose automatically calls IShutdownActions Assert.True(isDisposed); }
public static void Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #endif var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Wapplo") .WithMutex("BF63D6C4-5F1A-4D43-87C7-0607EB50D0D0") .WithConfigSupport() .WithIniSectionResolving() .WithLanguageResolving() .WithCaliburnMicro() .WithAssemblyNames("Dapplo.Owin", "Dapplo.Signalr") .WithAssemblyPatterns("Wapplo*") .WithScanDirectories( #if DEBUG @"..\..\..\Wapplo.ShareContext\bin\Debug", @"..\..\..\Wapplo.WindowsServices\bin\Debug" #else @"..\..\..\Wapplo.ShareContext\bin\Release", @"..\..\..\Wapplo.WindowsServices\bin\DebugRelease" #endif ) .BuildApplicationConfig(); var dapplication = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; dapplication.Run(); }
public static void Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #else // Make sure everything is logged, until the next logger is set, so it can be forwarded LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug); #endif var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Dapplo.Dopy") .WithMutex("06486F0F-0DBC-4912-9C5C-5C9C777BA34E") .WithCaliburnMicro() .WithoutCopyOfEmbeddedAssemblies() .WithAssemblyPatterns("Dapplo.Dopy*") .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; application.Run(); }
public async Task TestStartupShutdown() { AssemblyUtils.SetEntryAssembly(GetType().Assembly); var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName(ApplicationName) .WithScanDirectories(TestAssemblyDirectories) // Add all assemblies starting with Dapplo .WithAssemblyPatterns("Dapplo*") .BuildApplicationConfig(); using (var bootstrapper = new ApplicationBootstrapper(applicationConfig)) { bootstrapper.Configure(); #if DEBUG bootstrapper.EnableActivationLogging = true; #endif // Start the composition, and IStartupActions Assert.True(await bootstrapper.InitializeAsync().ConfigureAwait(false), "Couldn't run"); Assert.Contains(bootstrapper.LoadedAssemblies, addon => addon.GetName().Name.EndsWith("TestAddon")); } // Dispose automatically calls IShutdownActions }
public static void Main() { LogSettings.RegisterDefaultLogger <FileLogger>(LogLevels.Verbose); //LogSettings.RegisterDefaultLogger<DebugLogger>(LogLevels.Verbose); // Use this to setup the culture of your UI var cultureInfo = CultureInfo.GetCultureInfo("en-US"); Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("ClickOnceDemo") .WithMutex("2141D0DC-2B87-4B70-A8A7-A1EFDB588656") .WithCaliburnMicro() .WithAssemblyPatterns("Application.Demo*") .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnLastWindowClose, OnAlreadyRunning = () => { MessageBox.Show("Already started, exiting"); return(-1); } }; // Handle exceptions application.DisplayErrorView(); application.Run(); }
public static void Main() { var applicationConfig = ApplicationConfigBuilder. Create() //.WithoutAsyncAssemblyLoading() // Make sure the bootstrapper knows where to find it's DLL files .WithScanDirectories( ScanLocations.GenerateScanDirectories( #if NET471 "net471", #else "netcoreapp3.0", #endif "Application.Demo.Addon", "Application.Demo.MetroAddon", "Application.Demo.OverlayAddon").ToArray() ) .WithApplicationName("Application.Demo") .WithMutex("f32dbad8-9904-473e-86e2-19275c2d06a5") // Enable CaliburnMicro .WithCaliburnMicro() .WithoutCopyOfEmbeddedAssemblies() #if NET471 .WithoutCopyOfAssembliesToProbingPath() #endif //.WithoutStrictChecking() // Load the Application.Demo.* assemblies .WithAssemblyPatterns("Application.Demo.*").BuildApplicationConfig(); Start(applicationConfig); }
public static int Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #endif var applicationConfig = ApplicationConfigBuilder.Create() .WithApplicationName("Dapplo.SabNZB") .WithMutex("68cb5937-90cd-4a17-9d30-d68fa9906cd6") .WithCaliburnMicro() .WithConfigSupport() // Activate automatic "IniSection" resolving .WithIniSectionResolving() // Activate automatic "ILanguage" resolving .WithLanguageResolving() .BuildApplicationConfig(); var dapplication = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; if (dapplication.WasAlreadyRunning) { return(-1); } StringEncryptionTypeConverter.RgbIv = "0@94hFj3&E4r!k231E!"; StringEncryptionTypeConverter.RgbKey = "lkfwWF/63)=ßDeefkez4§Rf33g39hh§F"; dapplication.Run(); return(0); }
public void Test_ApplicationConfig_AssemblyNames() { var config = ApplicationConfigBuilder .Create() .WithAssemblyNames("Dapplo.Addons.Config") .BuildApplicationConfig(); Assert.Contains(config.AssemblyNames, s => s.Equals("Dapplo.Addons.Config")); }
public void Test_ApplicationConfig_ScanDirectories_With() { var config = ApplicationConfigBuilder .Create() .WithScanDirectories("TestFiles") .BuildApplicationConfig(); Assert.Contains(config.ScanDirectories, s => s.EndsWith(@"TestFiles", StringComparison.OrdinalIgnoreCase)); }
public void Test_ApplicationConfig_ApplicationName() { var config = ApplicationConfigBuilder .Create() .WithApplicationName("Dapplo") .BuildApplicationConfig(); Assert.Equal("Dapplo", config.ApplicationName); }
public void Test_ApplicationConfig_Extensions_Add() { var config = ApplicationConfigBuilder .Create() .WithExtensions(".gsp") .BuildApplicationConfig(); Assert.Equal(config.Extensions, new[] { ".dll", ".dll.compressed", ".dll.gz", ".gsp" }); }
public void Test_ApplicationConfig_Mutex() { var guid = Guid.NewGuid().ToString(); var config = ApplicationConfigBuilder .Create() .WithMutex(guid) .BuildApplicationConfig(); Assert.Equal(guid, config.Mutex); }
public void TestConstructorAndCleanup() { var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName(ApplicationName) .BuildApplicationConfig(); var bootstrapper = new ApplicationBootstrapper(applicationConfig); bootstrapper.Dispose(); }
public void Test_ApplicationConfig_Extensions_Remove() { var config = ApplicationConfigBuilder .Create() .WithoutExtensions(".dll", ".dll.compressed", ".dll.gz") .BuildApplicationConfig(); Assert.Empty(config.Extensions); config = ApplicationConfigBuilder.Create().WithoutExtensions().BuildApplicationConfig(); Assert.Empty(config.Extensions); }
public void Test_ApplicationConfig_Defaults() { var config = ApplicationConfigBuilder .Create() .BuildApplicationConfig(); Assert.NotEmpty(config.ApplicationName); Assert.Equal(FileLocations.AssemblyResolveDirectories, config.ScanDirectories); Assert.Contains(config.Extensions, s => s.Equals(".dll")); Assert.False(config.UseGlobalMutex); Assert.True(config.ScanForEmbeddedAssemblies); Assert.True(config.CopyEmbeddedAssembliesToFileSystem); }
public void TestConstructorWithMutexAndCleanup() { var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Test") .WithMutex(Guid.NewGuid().ToString()) .BuildApplicationConfig(); using (var bootstrapper = new ApplicationBootstrapper(applicationConfig)) { Assert.False(bootstrapper.IsAlreadyRunning); } }
public static int Main(string[] arguments) { // TODO: Set via build StringEncryptionTypeConverter.RgbIv = "dlgjowejgogkklwj"; StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff"; // Make sure the exceptions in the log are readable, uses Ben.Demystifier //LogSettings.ExceptionToStacktrace = exception => exception.ToStringDemystified(); #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #endif var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Greenshot") .WithMutex("F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08") .WithConfigSupport() .WithCaliburnMicro() .WithAssemblyPatterns("Greenshot.Addon*") .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; // Prevent multiple instances if (application.WasAlreadyRunning) { // TODO: Call the running instance, pass the commandline ShowInstances(); // Don't start the dapplication, exit with 0 application.Shutdown(0); return(-1); } RegisterErrorHandlers(application); application.Bootstrapper.OnContainerCreated += container => { var autofacServiceLocator = new AutofacServiceLocator(container); ServiceLocator.SetLocatorProvider(() => autofacServiceLocator); }; application.Run(); return(0); }
public static int Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #else LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug); #endif // TODO: Set via build StringEncryptionTypeConverter.RgbIv = "dlgjowejgogkklwj"; StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff"; // Use this to setup the culture of your UI var cultureInfo = CultureInfo.GetCultureInfo("en-US"); Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Finder") .WithMutex("896482B0-2E32-480C-A9C1-87B1CCF245BF") .WithoutCopyOfEmbeddedAssemblies() .WithCaliburnMicro() .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnLastWindowClose }; // Prevent multiple instances if (application.WasAlreadyRunning) { Log.Warn().WriteLine("{0} was already running.", applicationConfig.ApplicationName); // Don't start the dapplication, exit with 0 application.Shutdown(-1); return(-1); } RegisterErrorHandlers(application); application.Run(); return(0); }
public static int Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #else LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug); #endif // TODO: Set via build StringEncryptionTypeConverter.RgbIv = "dlgjowejgogkklwj"; StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff"; Log.Info().WriteLine("Windows version {0}", Environment.OSVersion.Version); var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Pip") .WithMutex("214222E8-9878-451F-BF9B-B788F591E7DD") .WithCaliburnMicro() .WithoutCopyOfEmbeddedAssemblies() #if NET471 .WithoutCopyOfAssembliesToProbingPath() #endif .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; // Prevent multiple instances if (application.WasAlreadyRunning) { Log.Warn().WriteLine("{0} was already running.", applicationConfig.ApplicationName); // Don't start the dapplication, exit with -1 application.Shutdown(-1); return(-1); } RegisterErrorHandlers(application); application.Run(); return(0); }
public static void Main() { #if DEBUG // Initialize a debug logger for Dapplo packages LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); #endif var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Dapplo.Exchange.ExampleClient") .WithMutex("05ffc82c-f7cd-45d3-831d-867660a231ff") .WithCaliburnMicro() .BuildApplicationConfig(); var application = new Dapplication(applicationConfig) { ShutdownMode = ShutdownMode.OnExplicitShutdown }; if (application.WasAlreadyRunning) { } application.Run(); }
public static async Task <int> Main(string[] args) { LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose); var applicationConfig = ApplicationConfigBuilder.Create() .WithApplicationName("DemoConsoleApp") .WithScanDirectories( #if DEBUG @"..\..\..\..\Dapplo.Addons.TestAddonWithCostura\bin\Debug\netstandard2.0", #else @"..\..\..\..\Dapplo.Addons.TestAddonWithCostura\bin\Release\netstandard2.0", #endif FileLocations.StartupDirectory, @"MyOtherLibs" ) .WithAssemblyNames("Dapplo.HttpExtensions", "Dapplo.Addons.TestAddonWithCostura").BuildApplicationConfig(); using (var bootstrapper = new ApplicationBootstrapper(applicationConfig)) { #if DEBUG bootstrapper.EnableActivationLogging = true; #endif bootstrapper.Configure(); await bootstrapper.InitializeAsync().ConfigureAwait(false); bootstrapper.Container.Resolve <ServiceStartupShutdown>(); // Find all, currently, available assemblies if (Log.IsDebugEnabled()) { foreach (var resource in bootstrapper.Resolver.EmbeddedAssemblyNames()) { Log.Debug().WriteLine("Available embedded assembly {0}", resource); } } Assembly.Load("Dapplo.HttpExtensions"); } return(0); }
/// <summary> /// Configure the ApplicationConfig to use Dapplo.CaliburnMicro by adding the right stuff /// </summary> /// <param name="applicationConfigBuilder">ApplicationConfigBuilder</param> /// <returns>ApplicationConfigBuilder</returns> public static ApplicationConfigBuilder WithCaliburnMicro(this ApplicationConfigBuilder applicationConfigBuilder) { // Load the Dapplo.CaliburnMicro.* assemblies applicationConfigBuilder.WithAssemblyPatterns("Dapplo.CaliburnMicro*"); return(applicationConfigBuilder); }