diff --git a/Frends.MicrosoftSQL.ExecuteQueryToFile/CHANGELOG.md b/Frends.MicrosoftSQL.ExecuteQueryToFile/CHANGELOG.md index 528ac6f..a74161e 100644 --- a/Frends.MicrosoftSQL.ExecuteQueryToFile/CHANGELOG.md +++ b/Frends.MicrosoftSQL.ExecuteQueryToFile/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.2.0] - 2026-01-14 +### Fixed +- Fix unloading assembly + ## [2.1.0] - 2024-12-16 ### Added - Added Microsoft.SqlServer.Types dependency so that SqlGeography and SqlGeometry typed objects can be handled. diff --git a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/FileEncoding.cs b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/FileEncoding.cs index cdc2840..f0fa0a8 100644 --- a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/FileEncoding.cs +++ b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/FileEncoding.cs @@ -1,17 +1,17 @@ -namespace Frends.MicrosoftSQL.ExecuteQueryToFile.Enums; - -#pragma warning disable CS1591 // Self-explanatory - -/// -/// File encoding used to encode the file. -/// -public enum FileEncoding -{ - UTF8, - ANSI, - ASCII, - Unicode, - Other, -} - +namespace Frends.MicrosoftSQL.ExecuteQueryToFile.Enums; + +#pragma warning disable CS1591 // Self-explanatory + +/// +/// File encoding used to encode the file. +/// +public enum FileEncoding +{ + UTF8, + ANSI, + ASCII, + Unicode, + Other, +} + #pragma warning restore CS1591 // Self-explanatory \ No newline at end of file diff --git a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/ReturnFormat.cs b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/ReturnFormat.cs index f37af8c..4c47233 100644 --- a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/ReturnFormat.cs +++ b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Enums/ReturnFormat.cs @@ -1,13 +1,13 @@ -namespace Frends.MicrosoftSQL.ExecuteQueryToFile.Enums; - -#pragma warning disable CS1591 // Self-explanatory - -/// -/// Enumeration for output format. -/// -public enum ReturnFormat -{ - CSV, -} - +namespace Frends.MicrosoftSQL.ExecuteQueryToFile.Enums; + +#pragma warning disable CS1591 // Self-explanatory + +/// +/// Enumeration for output format. +/// +public enum ReturnFormat +{ + CSV, +} + #pragma warning restore CS1591 // Self-explanatory \ No newline at end of file diff --git a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.cs b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.cs index 1e5d353..0033dd4 100644 --- a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.cs +++ b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.cs @@ -1,19 +1,32 @@ -namespace Frends.MicrosoftSQL.ExecuteQueryToFile; - -using System; +using System; using System.ComponentModel; using System.Data; +using System.Reflection; +using System.Runtime.Loader; using System.Threading; using System.Threading.Tasks; using Frends.MicrosoftSQL.ExecuteQueryToFile.Definitions; using Frends.MicrosoftSQL.ExecuteQueryToFile.Enums; using Microsoft.Data.SqlClient; +namespace Frends.MicrosoftSQL.ExecuteQueryToFile; + /// /// Main class of the Task. /// public static class MicrosoftSQL { + static MicrosoftSQL() + { + var currentAssembly = Assembly.GetExecutingAssembly(); + var currentContext = AssemblyLoadContext.GetLoadContext(currentAssembly); + + if (currentContext != null) + { + currentContext.Unloading += OnPluginUnloadingRequested; + } + } + /// /// Frends Task for executing Microsoft SQL queries into a file. /// [Documentation](https://tasks.frends.com/tasks/frends-tasks/Frends.MicrosoftSQL.ExecuteQueryToFile). @@ -25,6 +38,7 @@ public static class MicrosoftSQL public static async Task ExecuteQueryToFile([PropertyTab] Input input, [PropertyTab] Options options, CancellationToken cancellationToken) { Result result = new(); + using (var sqlConnection = new SqlConnection(input.ConnectionString)) { await sqlConnection.OpenAsync(cancellationToken); @@ -59,10 +73,16 @@ public static async Task ExecuteQueryToFile([PropertyTab] Input input, [ case ReturnFormat.CSV: var csvWriter = new CsvFileWriter(command, input, options.CsvOptions); result = await csvWriter.SaveQueryToCSV(cancellationToken); + break; } } return result; } -} + + private static void OnPluginUnloadingRequested(AssemblyLoadContext obj) + { + obj.Unloading -= OnPluginUnloadingRequested; + } +} \ No newline at end of file diff --git a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.csproj b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.csproj index ec6c0bf..0bd3cc0 100644 --- a/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.csproj +++ b/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile/Frends.MicrosoftSQL.ExecuteQueryToFile.csproj @@ -3,7 +3,7 @@ net6.0 Latest - 2.1.0 + 2.2.0 Frends Frends Frends