mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-07-09 02:07:47 +00:00
Merge branch 'develop' into dependabot/npm_and_yarn/src/ElectronNET.Host/multi-5f1280885e
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
# 0.5.2
|
||||
|
||||
## ElectronNET.Core
|
||||
|
||||
- Fixed token param being appended to external URLs (#1075)
|
||||
- Added more variants for `UseElectron` (#1076) @AeonSake
|
||||
|
||||
# 0.5.1
|
||||
|
||||
## ElectronNET.Core
|
||||
|
||||
@@ -54,7 +54,7 @@ Add the Electron.NET configuration to your `.csproj` file:
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.0" />
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.1" />
|
||||
</ItemGroup>
|
||||
```
|
||||
|
||||
|
||||
@@ -50,8 +50,6 @@
|
||||
|
||||
internal static int? ElectronProcessId { get; set; }
|
||||
|
||||
internal static Func<Task> OnAppReadyCallback { get; set; }
|
||||
|
||||
internal static ISocketConnection GetSocket()
|
||||
{
|
||||
return RuntimeControllerCore?.Socket;
|
||||
|
||||
@@ -44,5 +44,98 @@
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core application and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="WebApplicationBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process, forwarded to Electron.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="WebApplicationBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// var builder = WebApplication.CreateBuilder(args)
|
||||
/// .UseElectron(args, async (processArgs) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
///
|
||||
/// var app = builder.Build();
|
||||
/// app.MapRazorPages();
|
||||
/// app.Run();
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static WebApplicationBuilder UseElectron(this WebApplicationBuilder builder, string[] args, Func<string[], Task> onAppReadyCallback)
|
||||
{
|
||||
builder.WebHost.UseElectron(args, onAppReadyCallback);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core application and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="WebApplicationBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process, forwarded to Electron.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="WebApplicationBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// var builder = WebApplication.CreateBuilder(args)
|
||||
/// .UseElectron(args, async (serviceProvider) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
///
|
||||
/// var app = builder.Build();
|
||||
/// app.MapRazorPages();
|
||||
/// app.Run();
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static WebApplicationBuilder UseElectron(this WebApplicationBuilder builder, string[] args, Func<IServiceProvider, Task> onAppReadyCallback)
|
||||
{
|
||||
builder.WebHost.UseElectron(args, onAppReadyCallback);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core application and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="WebApplicationBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process, forwarded to Electron.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="WebApplicationBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// var builder = WebApplication.CreateBuilder(args)
|
||||
/// .UseElectron(args, async (serviceProvider, processArgs) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
///
|
||||
/// var app = builder.Build();
|
||||
/// app.MapRazorPages();
|
||||
/// app.Run();
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static WebApplicationBuilder UseElectron(this WebApplicationBuilder builder, string[] args, Func<IServiceProvider, string[], Task> onAppReadyCallback)
|
||||
{
|
||||
builder.WebHost.UseElectron(args, onAppReadyCallback);
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,8 +61,154 @@
|
||||
/// </example>
|
||||
public static IWebHostBuilder UseElectron(this IWebHostBuilder builder, string[] args, Func<Task> onAppReadyCallback)
|
||||
{
|
||||
ElectronNetRuntime.OnAppReadyCallback = onAppReadyCallback;
|
||||
builder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<IAppReadyCallbackResolver>(_ => new AppReadyCallbackResolver(onAppReadyCallback));
|
||||
});
|
||||
|
||||
return UseElectronCore(builder, args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core web host and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="IWebHostBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="IWebHostBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// using Microsoft.AspNetCore.Hosting;
|
||||
/// using Microsoft.Extensions.Hosting;
|
||||
/// using ElectronNET.API;
|
||||
///
|
||||
/// public class Program
|
||||
/// {
|
||||
/// public static void Main(string[] args)
|
||||
/// {
|
||||
/// Host.CreateDefaultBuilder(args)
|
||||
/// .ConfigureWebHostDefaults(webBuilder =>
|
||||
/// {
|
||||
/// webBuilder.UseStartup<Startup>();
|
||||
/// webBuilder.UseElectron(args, async (processArgs) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
/// })
|
||||
/// .Build()
|
||||
/// .Run();
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static IWebHostBuilder UseElectron(this IWebHostBuilder builder, string[] args, Func<string[], Task> onAppReadyCallback)
|
||||
{
|
||||
builder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<IAppReadyCallbackResolver>(_ => new AppReadyCallbackResolver(args, onAppReadyCallback));
|
||||
});
|
||||
|
||||
return UseElectronCore(builder, args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core web host and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="IWebHostBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="IWebHostBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// using Microsoft.AspNetCore.Hosting;
|
||||
/// using Microsoft.Extensions.Hosting;
|
||||
/// using ElectronNET.API;
|
||||
///
|
||||
/// public class Program
|
||||
/// {
|
||||
/// public static void Main(string[] args)
|
||||
/// {
|
||||
/// Host.CreateDefaultBuilder(args)
|
||||
/// .ConfigureWebHostDefaults(webBuilder =>
|
||||
/// {
|
||||
/// webBuilder.UseStartup<Startup>();
|
||||
/// webBuilder.UseElectron(args, async (serviceProvider) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
/// })
|
||||
/// .Build()
|
||||
/// .Run();
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static IWebHostBuilder UseElectron(this IWebHostBuilder builder, string[] args, Func<IServiceProvider, Task> onAppReadyCallback)
|
||||
{
|
||||
builder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<IAppReadyCallbackResolver>(provider => new AppReadyCallbackResolver(provider, onAppReadyCallback));
|
||||
});
|
||||
|
||||
return UseElectronCore(builder, args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds Electron.NET support to the current ASP.NET Core web host and registers an application-ready callback.
|
||||
/// </summary>
|
||||
/// <param name="builder">The <see cref="IWebHostBuilder"/> to extend.</param>
|
||||
/// <param name="args">The command-line arguments passed to the process.</param>
|
||||
/// <param name="onAppReadyCallback">
|
||||
/// An asynchronous callback invoked when the Electron app is ready. Use this to create windows or perform initialization.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The same <see cref="IWebHostBuilder"/> instance to enable fluent configuration.
|
||||
/// </returns>
|
||||
/// <example>
|
||||
/// <code language="csharp">
|
||||
/// using Microsoft.AspNetCore.Hosting;
|
||||
/// using Microsoft.Extensions.Hosting;
|
||||
/// using ElectronNET.API;
|
||||
///
|
||||
/// public class Program
|
||||
/// {
|
||||
/// public static void Main(string[] args)
|
||||
/// {
|
||||
/// Host.CreateDefaultBuilder(args)
|
||||
/// .ConfigureWebHostDefaults(webBuilder =>
|
||||
/// {
|
||||
/// webBuilder.UseStartup<Startup>();
|
||||
/// webBuilder.UseElectron(args, async (serviceProvider, processArgs) =>
|
||||
/// {
|
||||
/// // Create the main browser window or perform other startup tasks.
|
||||
/// });
|
||||
/// })
|
||||
/// .Build()
|
||||
/// .Run();
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static IWebHostBuilder UseElectron(this IWebHostBuilder builder, string[] args, Func<IServiceProvider, string[], Task> onAppReadyCallback)
|
||||
{
|
||||
builder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<IAppReadyCallbackResolver>(provider => new AppReadyCallbackResolver(provider, args, onAppReadyCallback));
|
||||
});
|
||||
|
||||
return UseElectronCore(builder, args);
|
||||
}
|
||||
|
||||
private static IWebHostBuilder UseElectronCore(IWebHostBuilder builder, string[] args)
|
||||
{
|
||||
// no matter how this is set - let's unset to prevent Electron not starting as expected
|
||||
// e.g., VS Code sets this env variable, but this will cause `require("electron")` to not
|
||||
// work as expected, see issue #952
|
||||
|
||||
@@ -17,13 +17,15 @@
|
||||
{
|
||||
private readonly IServer server;
|
||||
private readonly AspNetLifetimeAdapter aspNetLifetimeAdapter;
|
||||
private readonly IAppReadyCallbackResolver callbackResolver;
|
||||
private readonly IElectronAuthenticationService authenticationService;
|
||||
private SocketBridgeService socketBridge;
|
||||
|
||||
protected RuntimeControllerAspNetBase(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IElectronAuthenticationService authenticationService = null)
|
||||
protected RuntimeControllerAspNetBase(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IAppReadyCallbackResolver callbackResolver, IElectronAuthenticationService authenticationService = null)
|
||||
{
|
||||
this.server = server;
|
||||
this.aspNetLifetimeAdapter = aspNetLifetimeAdapter;
|
||||
this.callbackResolver = callbackResolver;
|
||||
this.authenticationService = authenticationService;
|
||||
this.aspNetLifetimeAdapter.Ready += this.AspNetLifetimeAdapter_Ready;
|
||||
this.aspNetLifetimeAdapter.Stopping += this.AspNetLifetimeAdapter_Stopping;
|
||||
@@ -130,15 +132,15 @@
|
||||
|
||||
private async Task RunReadyCallback()
|
||||
{
|
||||
if (ElectronNetRuntime.OnAppReadyCallback == null)
|
||||
if (!callbackResolver.HasCallback)
|
||||
{
|
||||
Console.WriteLine("Warning: Non OnReadyCallback provided in UseElectron() setup.");
|
||||
Console.WriteLine("Warning: No OnReadyCallback provided in UseElectron() setup.");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await ElectronNetRuntime.OnAppReadyCallback().ConfigureAwait(false);
|
||||
await callbackResolver.Invoke().ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
{
|
||||
private ElectronProcessBase electronProcess;
|
||||
|
||||
public RuntimeControllerAspNetDotnetFirst(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IElectronAuthenticationService authenticationService = null) : base(server, aspNetLifetimeAdapter, authenticationService)
|
||||
public RuntimeControllerAspNetDotnetFirst(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IAppReadyCallbackResolver callbackResolver, IElectronAuthenticationService authenticationService = null) : base(server, aspNetLifetimeAdapter, callbackResolver, authenticationService)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
{
|
||||
private ElectronProcessBase electronProcess;
|
||||
|
||||
public RuntimeControllerAspNetElectronFirst(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IElectronAuthenticationService authenticationService = null) : base(server, aspNetLifetimeAdapter, authenticationService)
|
||||
public RuntimeControllerAspNetElectronFirst(IServer server, AspNetLifetimeAdapter aspNetLifetimeAdapter, IAppReadyCallbackResolver callbackResolver, IElectronAuthenticationService authenticationService = null) : base(server, aspNetLifetimeAdapter, callbackResolver, authenticationService)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ElectronNET.AspNet.Runtime
|
||||
{
|
||||
internal class AppReadyCallbackResolver : IAppReadyCallbackResolver
|
||||
{
|
||||
private readonly Func<Task> _callback;
|
||||
|
||||
public AppReadyCallbackResolver()
|
||||
{ }
|
||||
|
||||
public AppReadyCallbackResolver(Func<Task> callback)
|
||||
{
|
||||
_callback = callback;
|
||||
}
|
||||
|
||||
public AppReadyCallbackResolver(string[] args, Func<string[], Task> callback)
|
||||
{
|
||||
if (callback != null)
|
||||
{
|
||||
_callback = () => callback.Invoke(args);
|
||||
}
|
||||
}
|
||||
|
||||
public AppReadyCallbackResolver(IServiceProvider serviceProvider, Func<IServiceProvider, Task> callback)
|
||||
{
|
||||
if (callback != null)
|
||||
{
|
||||
_callback = () => callback.Invoke(serviceProvider);
|
||||
}
|
||||
}
|
||||
|
||||
public AppReadyCallbackResolver(IServiceProvider serviceProvider, string[] args, Func<IServiceProvider, string[], Task> callback)
|
||||
{
|
||||
if (callback != null)
|
||||
{
|
||||
_callback = () => callback.Invoke(serviceProvider, args);
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasCallback => _callback != null;
|
||||
|
||||
public Task Invoke() => _callback?.Invoke() ?? Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ElectronNET.AspNet.Runtime
|
||||
{
|
||||
internal interface IAppReadyCallbackResolver
|
||||
{
|
||||
public bool HasCallback { get; }
|
||||
|
||||
public Task Invoke();
|
||||
}
|
||||
}
|
||||
@@ -70,7 +70,7 @@
|
||||
<ProjectReference Include="..\ElectronNET.API\ElectronNET.API.csproj" Condition="$(ElectronNetDevMode)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.0" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.1" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="..\ElectronNET\build\ElectronNET.Core.targets" Condition="$(ElectronNetDevMode)" />
|
||||
|
||||
@@ -280,8 +280,20 @@ module.exports = (socket, app) => {
|
||||
// Append authentication token to initial URL if available
|
||||
const token = global["authToken"];
|
||||
if (token) {
|
||||
const separator = loadUrl.includes("?") ? "&" : "?";
|
||||
window.loadURL(`${loadUrl}${separator}token=${token}`);
|
||||
try {
|
||||
const url = new URL(loadUrl);
|
||||
const isLocal = url.hostname === "localhost" ||
|
||||
url.hostname === "127.0.0.1" ||
|
||||
url.hostname === "::1";
|
||||
if (isLocal) {
|
||||
url.searchParams.set("token", token);
|
||||
}
|
||||
window.loadURL(url.toString());
|
||||
}
|
||||
catch {
|
||||
// Handle invalid URLs or file:// URLs if needed
|
||||
window.loadURL(loadUrl);
|
||||
}
|
||||
}
|
||||
else {
|
||||
window.loadURL(loadUrl);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -313,8 +313,23 @@ export = (socket: Socket, app: Electron.App) => {
|
||||
const token = global["authToken"];
|
||||
|
||||
if (token) {
|
||||
const separator = loadUrl.includes("?") ? "&" : "?";
|
||||
window.loadURL(`${loadUrl}${separator}token=${token}`);
|
||||
try {
|
||||
const url = new URL(loadUrl);
|
||||
|
||||
const isLocal =
|
||||
url.hostname === "localhost" ||
|
||||
url.hostname === "127.0.0.1" ||
|
||||
url.hostname === "::1";
|
||||
|
||||
if (isLocal) {
|
||||
url.searchParams.set("token", token);
|
||||
}
|
||||
|
||||
window.loadURL(url.toString());
|
||||
} catch {
|
||||
// Handle invalid URLs or file:// URLs if needed
|
||||
window.loadURL(loadUrl);
|
||||
}
|
||||
} else {
|
||||
window.loadURL(loadUrl);
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.0" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core.AspNet" Version="0.5.0" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.1" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core.AspNet" Version="0.5.1" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="5.9.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -76,8 +76,8 @@
|
||||
<ProjectReference Include="..\ElectronNET.AspNet\ElectronNET.AspNet.csproj" Condition="$(ElectronNetDevMode)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.0" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core.AspNet" Version="0.5.0" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core" Version="0.5.1" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="ElectronNET.Core.AspNet" Version="0.5.1" Condition="'$(ElectronNetDevMode)' != 'true'" />
|
||||
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="5.9.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -437,6 +437,8 @@
|
||||
<EnumValue Name="40.10.0" DisplayName="40.10.0" />
|
||||
<EnumValue Name="40.10.1" DisplayName="40.10.1" />
|
||||
<EnumValue Name="40.10.2" DisplayName="40.10.2" />
|
||||
<EnumValue Name="40.10.3" DisplayName="40.10.3" />
|
||||
<EnumValue Name="40.10.4" DisplayName="40.10.4" />
|
||||
<EnumValue Name="41.0.0" DisplayName="41.0.0" />
|
||||
<EnumValue Name="41.0.1" DisplayName="41.0.1" />
|
||||
<EnumValue Name="41.0.2" DisplayName="41.0.2" />
|
||||
@@ -456,6 +458,8 @@
|
||||
<EnumValue Name="41.6.1" DisplayName="41.6.1" />
|
||||
<EnumValue Name="41.7.0" DisplayName="41.7.0" />
|
||||
<EnumValue Name="41.7.1" DisplayName="41.7.1" />
|
||||
<EnumValue Name="41.7.2" DisplayName="41.7.2" />
|
||||
<EnumValue Name="41.8.0" DisplayName="41.8.0" />
|
||||
<EnumValue Name="42.0.0" DisplayName="42.0.0" />
|
||||
<EnumValue Name="42.0.1" DisplayName="42.0.1" />
|
||||
<EnumValue Name="42.1.0" DisplayName="42.1.0" />
|
||||
@@ -464,6 +468,8 @@
|
||||
<EnumValue Name="42.3.1" DisplayName="42.3.1" />
|
||||
<EnumValue Name="42.3.2" DisplayName="42.3.2" />
|
||||
<EnumValue Name="42.3.3" DisplayName="42.3.3" />
|
||||
<EnumValue Name="42.4.0" DisplayName="42.4.0" />
|
||||
<EnumValue Name="42.4.1" DisplayName="42.4.1" />
|
||||
</EnumProperty>
|
||||
|
||||
<EnumProperty Name="ElectronBuilderVersion"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>0.5.1</Version>
|
||||
<Version>0.5.2</Version>
|
||||
<PackageNamePrefix>ElectronNET.Core</PackageNamePrefix>
|
||||
<Authors>Gregor Biswanger, Florian Rappl, softworkz</Authors>
|
||||
<Product>Electron.NET</Product>
|
||||
|
||||
Reference in New Issue
Block a user