From dd133b36594ba644c9ef5a28dee5703718b6ea9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=20Fl=C3=ADdr?= <tomflidr@gmail.com> Date: Mon, 23 Oct 2017 19:12:49 +0200 Subject: [PATCH] release 1.2.6 - provider detection fix --- Connection/StaticInit.vb | 30 +++++++++++++++++++++++++++--- Databasic.nuspec | 2 +- My Project/AssemblyInfo.vb | 4 ++-- README.md | 2 +- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Connection/StaticInit.vb b/Connection/StaticInit.vb index fec15be..83234d9 100644 --- a/Connection/StaticInit.vb +++ b/Connection/StaticInit.vb @@ -1,4 +1,4 @@ -Imports System.Configuration +Imports System.Configuration Imports System.Data.Common Imports System.IO Imports System.Reflection @@ -46,14 +46,15 @@ Partial Public MustInherit Class Connection End Sub Private Shared Sub _staticInitCompleteProviders() - Dim asms As New Dictionary(Of String, Reflection.Assembly) + Dim asms As New List(Of String) Dim asmName As String Dim connectionType As Type Dim conn As Connection Dim referencedAsms As Reflection.Assembly() = AppDomain.CurrentDomain.GetAssemblies() For Each asm As Reflection.Assembly In referencedAsms + asmName = asm.GetName().Name + asms.Add(asmName) If Connection._staticInitIsDatabasicSubAssembly(asm) Then - asmName = asm.GetName().Name connectionType = asm.GetType(asmName + ".Connection") If Not TypeOf connectionType Is Type Then Continue For conn = Activator.CreateInstance(connectionType) @@ -63,6 +64,29 @@ Partial Public MustInherit Class Connection ) End If Next + Try + Dim appDirAsms As IEnumerable(Of Assembly) = ( + From file In Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory) + Where Path.GetExtension(file).ToLower() = ".dll" + Select Assembly.LoadFrom(file) + ) + For Each asm As System.Reflection.Assembly In appDirAsms + asmName = asm.GetName().Name + If ( + Not asms.Contains(asmName) And + Connection._staticInitIsDatabasicSubAssembly(asm) + ) Then + connectionType = asm.GetType(asmName + ".Connection") + If Not TypeOf connectionType Is Type Then Continue For + conn = Activator.CreateInstance(connectionType) + Connection._supportedProviders.Add(conn.ClientName, connectionType) + Connection._providersResources.Add( + conn.ClientName, Activator.CreateInstance(conn.ProviderResource) + ) + End If + Next + Catch ex As Exception + End Try End Sub Private Shared Function _staticInitIsDatabasicSubAssembly(asm As Reflection.Assembly) As Boolean diff --git a/Databasic.nuspec b/Databasic.nuspec index 9093fcc..cb2b69a 100644 --- a/Databasic.nuspec +++ b/Databasic.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata minClientVersion="2.6"> <id>Databasic.Core</id> - <version>1.2.5.0</version> + <version>1.2.6.0</version> <title>Databasic - Core</title> <authors>Tom Flidr</authors> <owners>Tom Flidr</owners> diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 29fb8b0..165f34f 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -37,5 +37,5 @@ Install this package only with specific database package like: ' by using the '*' as shown below: ' <Assembly: AssemblyVersion("1.0.*")> -<Assembly: AssemblyVersion("1.2.5.0")> -<Assembly: AssemblyFileVersion("1.2.5.0")> +<Assembly: AssemblyVersion("1.2.6.0")> +<Assembly: AssemblyFileVersion("1.2.6.0")> diff --git a/README.md b/README.md index 81f6044..06ce523 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Databasic - Core Package -[](https://github.com/databasic-net/databasic-core/releases) +[](https://github.com/databasic-net/databasic-core/releases) [](https://raw.githubusercontent.com/databasic-net/databasic-core/master/LICENCE.md) 