From b2096b5fe763d1a3dc72147774a84a3c8e59d573 Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Mon, 27 Apr 2020 14:17:05 +0200 Subject: [PATCH] MS WIndream Init --- Global_Indexer/ClassInit.vb | 10 +- Global_Indexer/ClassPatterns.vb | 4 +- Global_Indexer/Global_Indexer.vbproj | 4 +- Global_Indexer/ModuleRuntime.vb | 2 +- Global_Indexer/My Project/AssemblyInfo.vb | 2 +- Global_Indexer/frmAdministration.resx | 10 +- Global_Indexer/frmAdministration.vb | 36 +--- Global_Indexer/frmHotKey_Add.vb | 1 - Global_Indexer/frmIndex.vb | 215 ++++++++++++---------- SetupVS19/Product.wxs | 1 + 10 files changed, 142 insertions(+), 143 deletions(-) diff --git a/Global_Indexer/ClassInit.vb b/Global_Indexer/ClassInit.vb index 9e530a8..8d22ad7 100644 --- a/Global_Indexer/ClassInit.vb +++ b/Global_Indexer/ClassInit.vb @@ -74,7 +74,7 @@ Public Class ClassInit Else If IDB_ACTIVE = False Then Try - WINDREAM = New Windream(LOGCONFIG, False, "", "", True, "", "", "", "") + WINDREAM = New Windream(LOGCONFIG, False, WMDrive, "\\windream\objects", True, "", "", "", "") If Not IsNothing(WINDREAM) Then If WINDREAM.SessionLoggedin = True Then LOGGER.Debug("windream initialisiert") @@ -99,11 +99,15 @@ Public Class ClassInit If DT.Rows.Count = 1 Then GI_withWindream = DT.Rows(0).Item("BIT1") 'vWLaufwerk = DT.Rows(0).Item("STRING1") + End If + oSql = "select * from TBDD_BASECONFIG" + DT = ClassDatabase.Return_Datatable(oSql) + If DT.Rows.Count = 1 Then + WMDrive = DT.Rows(0).Item("WM_DRIVE") Return True Else Return False End If - Catch ex As Exception MsgBox("Error in Load_BasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False @@ -229,7 +233,7 @@ Public Class ClassInit Exit Sub End If If DT_CHECKUSER_MODULE.Rows.Count = 1 Then - If DT_CHECKUSER_MODULE.Rows(0).Item("USER_ID") = 0 Then + If DT_CHECKUSER_MODULE.Rows(0).Item("USER_ID") = 0 And IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_SURNAME")) Then LOGGER.Info("User '" & Environment.UserName & "' not configured in Useradministration!") START_INCOMPLETE = True Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!") diff --git a/Global_Indexer/ClassPatterns.vb b/Global_Indexer/ClassPatterns.vb index f4e2955..9e32012 100644 --- a/Global_Indexer/ClassPatterns.vb +++ b/Global_Indexer/ClassPatterns.vb @@ -176,7 +176,7 @@ Public Class ClassPatterns Continue For End If - LOGGER.Debug("Getting control metadata from object: [{0}]", oControl?.Tag?.ToString()) + LOGGER.Debug("Getting control metadata from Control: [{0}]", oControl.Name) If oControl.Tag Is Nothing Then LOGGER.Warn("No Metadata object found for control [{0}]. Skipping.", oControl.Name) @@ -257,7 +257,7 @@ Public Class ClassPatterns oTryCounter += 1 End While - LOGGER.Debug("sql after ReplaceControlValues: " & input) + LOGGER.Debug("input after ReplaceControlValues [{input}]") Return result Catch ex As Exception LOGGER.Error(ex) diff --git a/Global_Indexer/Global_Indexer.vbproj b/Global_Indexer/Global_Indexer.vbproj index 965252e..a1ff8e5 100644 --- a/Global_Indexer/Global_Indexer.vbproj +++ b/Global_Indexer/Global_Indexer.vbproj @@ -173,9 +173,9 @@ False P:\Visual Studio Projekte\Bibliotheken\DLLLicenseManager.dll - + False - P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\Independentsoft.Msg.2.0.570.21482.dll + P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\22_11_19\Independentsoft.Msg.dll P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll diff --git a/Global_Indexer/ModuleRuntime.vb b/Global_Indexer/ModuleRuntime.vb index 87d7baf..e6628d2 100644 --- a/Global_Indexer/ModuleRuntime.vb +++ b/Global_Indexer/ModuleRuntime.vb @@ -9,7 +9,7 @@ Module ModuleRuntime Public MyConnectionString As String = "" Public LogErrorsOnly As Boolean = True Public GI_withWindream As Boolean = False - 'Public vWLaufwerk As String = "W" + Public WMDrive As String = "W" 'Public myPreviewActive As Boolean = True Public FW_started As Boolean = False Public IDB_ACTIVE As Boolean = False diff --git a/Global_Indexer/My Project/AssemblyInfo.vb b/Global_Indexer/My Project/AssemblyInfo.vb index f613f92..091f3a1 100644 --- a/Global_Indexer/My Project/AssemblyInfo.vb +++ b/Global_Indexer/My Project/AssemblyInfo.vb @@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + \ No newline at end of file diff --git a/Global_Indexer/frmAdministration.resx b/Global_Indexer/frmAdministration.resx index d179874..dcce1f9 100644 --- a/Global_Indexer/frmAdministration.resx +++ b/Global_Indexer/frmAdministration.resx @@ -3522,7 +3522,7 @@ Die erhaltenen Werte können in Indizes geschrieben oder zur Benennung der Datei 1 - 678, 87 + 677, 85 31, 22 @@ -3648,7 +3648,7 @@ Die erhaltenen Werte können in Indizes geschrieben oder zur Benennung der Datei False - 259, 89 + 259, 86 198, 21 @@ -3768,7 +3768,7 @@ Die erhaltenen Werte können in Indizes geschrieben oder zur Benennung der Datei Tahoma, 8.25pt - 163, 87 + 163, 86 90, 21 @@ -3822,7 +3822,7 @@ Die erhaltenen Werte können in Indizes geschrieben oder zur Benennung der Datei False - 463, 89 + 463, 86 209, 21 @@ -4152,7 +4152,7 @@ Die erhaltenen Werte können in Indizes geschrieben oder zur Benennung der Datei False - 259, 89 + 259, 86 198, 21 diff --git a/Global_Indexer/frmAdministration.vb b/Global_Indexer/frmAdministration.vb index 50d82cd..dc4dc9c 100644 --- a/Global_Indexer/frmAdministration.vb +++ b/Global_Indexer/frmAdministration.vb @@ -49,7 +49,6 @@ Public Class frmAdministration oDragDropManager.AddGridView(viewAssignedUsers) oDragDropManager.AddGridView(viewAvailableUsers) - RibbonPageUserGroups.Visible = False RibbonPageEmail.Visible = False Dim oDatatable As New DataTable() @@ -87,7 +86,6 @@ Public Class frmAdministration Try pnlObjekttype_Config.Enabled = False - Dim oDokumentTyp As WINDREAMLib.WMObject ' Combobox leeren Me.OBJEKTTYPComboBox.Items.Clear() ListBoxControl1.Items.Clear() @@ -98,8 +96,8 @@ Public Class frmAdministration For Each otype As String In SourceObjectTypes ' und in die Combobox eintragen - Me.OBJEKTTYPComboBox.Items.Add(oDokumentTyp.aName) - ListBoxControl1.Items.Add(oDokumentTyp.aName) + Me.OBJEKTTYPComboBox.Items.Add(otype) + ListBoxControl1.Items.Add(otype) Next @@ -317,6 +315,7 @@ Public Class frmAdministration If Me.OBJEKTTYPComboBox.SelectedIndex <> -1 Then Me.WD_INDEXComboBox.Items.Clear() Me.WD_INDEXComboBox.Items.Add("") + Me.INDEXNAME_AutoIndexCMB.Items.Clear() If SourceAttributes Is Nothing Then SourceAttributes = WINDREAM.GetIndiciesByObjecttype(OBJEKTTYPComboBox.Text) End If @@ -326,6 +325,7 @@ Public Class frmAdministration If SourceAttributes IsNot Nothing Then For Each index As String In SourceAttributes Me.WD_INDEXComboBox.Items.Add(index) + INDEXNAME_AutoIndexCMB.Items.Add(index) Next End If End If @@ -333,23 +333,6 @@ Public Class frmAdministration MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in load_WDIndices: ") End Try End Sub - Sub load_WDIndices2AutoIndizes() - Try - If Me.OBJEKTTYPComboBox.SelectedIndex <> -1 Then - Me.INDEXNAME_AutoIndexCMB.Items.Clear() - If SourceAttributes Is Nothing Then - SourceAttributes = WINDREAM.GetIndiciesByObjecttype(OBJEKTTYPComboBox.Text) - End If - If SourceAttributes IsNot Nothing Then - For Each index As String In SourceAttributes - Me.INDEXNAME_AutoIndexCMB.Items.Add(index) - Next - End If - End If - Catch ex As Exception - MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in load_WDIndices2AutoIndizes: ") - End Try - End Sub Private Sub frmAdministration_Shown(sender As Object, e As EventArgs) Handles Me.Shown If DOKART_GUIDTextBox.Text <> "" Then Load_Dokart() @@ -407,7 +390,6 @@ Public Class frmAdministration If WINDREAM_DIRECTCheckBox.Checked = True Then INDEXNAME_AutoIndexTXT.Visible = False INDEXNAME_AutoIndexCMB.Visible = True - load_WDIndices2AutoIndizes() Else INDEXNAME_AutoIndexTXT.Visible = True INDEXNAME_AutoIndexCMB.Visible = False @@ -491,13 +473,6 @@ Public Class frmAdministration RibbonControl1.SelectedPage = RibbonPageStart End If - If oSelectedPageName = XtraTabPageUsersGroups.Name Then - RibbonPageUserGroups.Visible = True - RibbonControl1.SelectedPage = RibbonPageUserGroups - Else - RibbonPageUserGroups.Visible = False - End If - If oSelectedPageName = XtraTabPageEmail.Name Then RibbonPageEmail.Visible = True @@ -555,7 +530,6 @@ Public Class frmAdministration End Sub Private Sub ObjektTypenListBoxEintragen() Try - Dim oDokumentTyp As WINDREAMLib.WMObject ' Combobox leeren ListBoxControl1.Items.Clear() ' alle Objekttypen durchlaufen @@ -564,7 +538,7 @@ Public Class frmAdministration End If For Each oDokumentTyp In SourceObjectTypes ' und in die Combobox eintragen - ListBoxControl1.Items.Add(oDokumentTyp.aName) + ListBoxControl1.Items.Add(oDokumentTyp) Next Catch ex As Exception MsgBox("Error in ObjektTypenListBoxEintragen:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) diff --git a/Global_Indexer/frmHotKey_Add.vb b/Global_Indexer/frmHotKey_Add.vb index ec957cc..b840d4f 100644 --- a/Global_Indexer/frmHotKey_Add.vb +++ b/Global_Indexer/frmHotKey_Add.vb @@ -3,7 +3,6 @@ Private Control_Sequence As Integer Private Sub ObjektTypenEintragen() Try - Dim oDokumentTyp As WINDREAMLib.WMObject ' Combobox leeren Me.cmbObjekttyp.Items.Clear() ' alle Objekttypen durchlaufen diff --git a/Global_Indexer/frmIndex.vb b/Global_Indexer/frmIndex.vb index 83a6e1d..dd07657 100644 --- a/Global_Indexer/frmIndex.vb +++ b/Global_Indexer/frmIndex.vb @@ -146,7 +146,7 @@ Public Class frmIndex For Each DR In DT.Rows If DR.Item("INDEXNAME").ToString.ToLower = indexname.ToLower Then If DR.Item("Indexiert") = True Then - LOGGER.Info(" >>Manueller Index: " & indexname) + LOGGER.Info("## Manueller Index: " & indexname) Select Case RequestFor Case "FILE" If DR.Item("Indexwert_File").ToString <> String.Empty Then @@ -155,11 +155,11 @@ Public Class frmIndex Return DR.Item("Indexwert_File") Else If DR.Item("Indexwert").ToString <> String.Empty Then - LOGGER.Info(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert")) + LOGGER.Info("Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert")) Return DR.Item("Indexwert") Else If opt = False Then - LOGGER.Info(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!") + LOGGER.Info("Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!") ShowNotice("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!") Return Nothing Else @@ -175,7 +175,7 @@ Public Class frmIndex Else 'Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True) If opt = False Then - LOGGER.Info(" >> Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!") + LOGGER.Info("Achtung, der Indexwert des manuellen Indexes '" & indexname & "' ist String.empty!") ShowNotice("Indexiert = True - Der Index: " & DR.Item("INDEXNAME") & " wurde nicht ordnungsgemäss indexiert! - Automatischer Index konnte nicht gesetzt werden!") Return Nothing Else @@ -276,7 +276,7 @@ Public Class frmIndex Function CheckWrite_IndexeMan(dokartid As Integer) '#### Zuerst manuelle Werte indexieren #### Try - LOGGER.Info(" >> In CheckWrite_IndexeMan") + LOGGER.Info("In CheckWrite_IndexeMan") Dim result As Boolean = False For Each oControl As Control In Me.pnlIndex.Controls ' MsgBox(ctrl.Name) @@ -433,6 +433,7 @@ Public Class frmIndex Function Name_Generieren() Try + LOGGER.Debug("#### Name_Generieren ####") Dim sql As String = "select VERSION_DELIMITER, FILE_DELIMITER FROM TBDD_MODULES WHERE GUID = 1" Dim DT1 As DataTable = ClassDatabase.Return_Datatable(sql) For Each row As DataRow In DT1.Rows @@ -465,25 +466,25 @@ Public Class frmIndex Dim oMatchelements As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(oNamenkonvention) '#### If oMatchelements.Count = 0 Then - LOGGER.Info(" >> No RegularExpression Fileds on Nameconvention!") + LOGGER.Debug("No RegularExpression Fileds on Nameconvention!") End If ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen For Each oElement As System.Text.RegularExpressions.Match In oMatchelements Select Case oElement.Value.Substring(2, 1).ToUpper 'Manueller Indexwert Case "M" - LOGGER.Info(" >>Manueller Index wird geprüft...") + LOGGER.Debug("NameGenerieren: Manueller Index wird geprüft...") Dim Indexname = oElement.Value.Substring(3, oElement.Value.Length - 4) Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & Indexname & "')", MyConnectionString, True) - Dim value As String = GetManIndex_Value(Indexname, "FILE", optional_index) - If value <> String.Empty Then - Dim firstVectorValue = value.Split(ClassConstants.VECTORSEPARATOR).First() + Dim oManValue As String = GetManIndex_Value(Indexname, "FILE", optional_index) + If oManValue <> String.Empty Then + Dim firstVectorValue = oManValue.Split(ClassConstants.VECTORSEPARATOR).First() oNamenkonvention = oNamenkonvention.Replace(oElement.Value, firstVectorValue) NewFileString = oNamenkonvention sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString AnzahlIndexe += 1 - sql_history_Index_Values = sql_history_Index_Values & ", '" & value.Replace("'", "''") & "'" + sql_history_Index_Values = sql_history_Index_Values & ", '" & oManValue.Replace("'", "''") & "'" Else If optional_index = True Then @@ -502,16 +503,16 @@ Public Class frmIndex ' AnzahlIndexe += 1 ' sql_history_Index_Values = sql_history_Index_Values & ", '" & System.IO.Path.GetFileNameWithoutExtension(CURRENT_WORKFILE).Replace("'", "''") & "'" 'Else - oNamenkonvention = oNamenkonvention.Replace("_" & oElement.Value, value) - oNamenkonvention = oNamenkonvention.Replace("-" & oElement.Value, value) + oNamenkonvention = oNamenkonvention.Replace("_" & oElement.Value, oManValue) + oNamenkonvention = oNamenkonvention.Replace("-" & oElement.Value, oManValue) NewFileString = oNamenkonvention sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString AnzahlIndexe += 1 - sql_history_Index_Values = sql_history_Index_Values & ", '" & value.Replace("'", "''") & "'" + sql_history_Index_Values = sql_history_Index_Values & ", '" & oManValue.Replace("'", "''") & "'" ' End If Else - LOGGER.Info(" >> Der Indexvalue für Index '" & Indexname & "' ist String.Empty") + LOGGER.Debug("Der Indexvalue für Index '" & Indexname & "' ist String.Empty") err = True End If @@ -594,7 +595,7 @@ Public Class frmIndex Loop End If Catch ex As Exception - LOGGER.Info(" - Unexpected error in Umbenennnen der Datei - Fehler: " & vbNewLine & ex.Message) + LOGGER.Warn(" - Unexpected error in NameGenerieren - Fehler: " & vbNewLine & ex.Message) LOGGER.Error(ex.Message) MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Umbenennnen der Datei:") err = True @@ -642,6 +643,8 @@ Public Class frmIndex folder_Created = True End If 'False oder True zurückgeben + LOGGER.Debug("#### ENDE Name_Generieren ####") + LOGGER.Debug("") If err = False Then Return True Else @@ -662,11 +665,11 @@ Public Class frmIndex 'Manuelle Indexe Indexieren Dim DTMan As DataTable = MyDataset.VWDDINDEX_MAN If DTMan.Rows.Count > 0 Then - Dim Count As Integer = 0 For Each row As DataRow In DTMan.Rows Dim idxvalue = row.Item("Indexwert") Dim indexname = row.Item("WD_INDEX").ToString + LOGGER.Debug($"Write_Indizes - Index [{indexname}]...") Dim optional_Index = CBool(row.Item("OPTIONAL")) Dim indexiert = CBool(row.Item("Indexiert")) If indexiert And idxvalue.ToString <> "" And idxvalue <> "EMPTY_OI" Then @@ -693,18 +696,26 @@ Public Class frmIndex End If End If - LOGGER.Info(" >> Manueller Indexvalue: " & idxvalue.ToString) + LOGGER.Debug($"Manueller Indexvalue [{idxvalue.ToString}]...NOW THE INDEXING...") Count += 1 ' den Typ des Zielindexes auslesen - Dim indexType As Integer = WINDREAM.GetIndexType(indexname) - - If indexType < WINDREAM.WMObjectVariableValueTypeVector Then + Dim oIndexType As Integer = WINDREAM.GetIndexType(indexname) + LOGGER.Debug($"oIndexType [{oIndexType.ToString}]...") + If oIndexType < WINDREAM.WMObjectVariableValueTypeVector Then indexierung_erfolgreich = WINDREAM.SetFileIndex(CURRENT_NEWFILENAME, indexname, idxvalue, CURR_DOKART_OBJECTTYPE) Else Dim oSplitArray = Split(idxvalue, ClassConstants.VECTORSEPARATOR) - Dim oListofString As List(Of String) - oListofString = (From o In oSplitArray Select 0.ToString.ToList) + Dim oListofString As New List(Of String) + If oSplitArray.Count = 0 Then + oListofString.Add(idxvalue) + Else + For Each oStr In oSplitArray + oListofString.Add(oStr) + Next + End If + + indexierung_erfolgreich = WINDREAM.SetFileIndex(CURRENT_NEWFILENAME, indexname, oListofString, CURR_DOKART_OBJECTTYPE) End If @@ -715,13 +726,13 @@ Public Class frmIndex Exit For End If Else - If LogErrorsOnly = False Then - LOGGER.Info(" >> No Indexing: indexname: " & indexname) - LOGGER.Info(" >> No Indexing: is optional? " & optional_Index.ToString) - End If + + LOGGER.Debug("No Indexing: indexname: " & indexname) + LOGGER.Debug("No Indexing: is optional? " & optional_Index.ToString) End If Else - LOGGER.Info(" >> Indexvalue is empty or field is not indexed - Indexname: " & indexname) + LOGGER.Debug("Indexvalue is empty or field is not indexed - Indexname: " & indexname) + LOGGER.Info("Indexvalue is empty or field is not indexed - Indexname: " & indexname) End If Next @@ -736,8 +747,8 @@ Public Class frmIndex Dim indexname = row.Item("INDEXNAME").ToString If indexiert = True And Indexvalue <> "" Then If Indexvalue <> "EMPTY_OI" Then - LOGGER.Info(" >> Auto Indexname: " & indexname.ToString) - LOGGER.Info(" >> Indexvalue: " & Indexvalue.ToString) + LOGGER.Info("Auto Indexname: " & indexname.ToString) + LOGGER.Info("Indexvalue: " & Indexvalue.ToString) Count += 1 ' den Typ des Zielindexes auslesen @@ -747,8 +758,14 @@ Public Class frmIndex indexierung_erfolgreich = WINDREAM.SetFileIndex(CURRENT_NEWFILENAME, indexname, Indexvalue, CURR_DOKART_OBJECTTYPE) Else Dim oSplitArray = Split(Indexvalue, ClassConstants.VECTORSEPARATOR) - Dim oListofString As List(Of String) - oListofString = (From o In oSplitArray Select 0.ToString.ToList) + Dim oListofString As New List(Of String) + If oSplitArray.Count = 0 Then + oListofString.Add(Indexvalue) + Else + For Each oStr In oSplitArray + oListofString.Add(oStr) + Next + End If indexierung_erfolgreich = WINDREAM.SetFileIndex(CURRENT_NEWFILENAME, indexname, oListofString, CURR_DOKART_OBJECTTYPE) End If @@ -785,7 +802,7 @@ Public Class frmIndex End Function Private Function WriteIndex2File(indexname As String, indexvalue As String) Try - LOGGER.Info(" >> Indexvalue: " & indexvalue.ToString) + LOGGER.Info("Indexvalue: " & indexvalue.ToString) Return WINDREAM.SetFileIndex(CURRENT_NEWFILENAME, indexname, indexvalue, CURR_DOKART_OBJECTTYPE) Catch ex As Exception MsgBox("Error in WriteIndex2File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) @@ -803,11 +820,11 @@ Public Class frmIndex Dim msgInternetAccountName = msg.InternetAccountName If LogErrorsOnly = False Then LOGGER.Info("") - LOGGER.Info(" >> msgInternetAccountName: " & msgInternetAccountName) - LOGGER.Info(" >> SenderName: " & msg.SenderName) - LOGGER.Info(" >> SenderEmailAddress: " & msg.SenderEmailAddress) - LOGGER.Info(" >> ReceivedByName: " & msg.ReceivedByName) - LOGGER.Info(" >> ReceivedByEmailAddress: " & msg.ReceivedByEmailAddress) + LOGGER.Info("msgInternetAccountName: " & msgInternetAccountName) + LOGGER.Info("SenderName: " & msg.SenderName) + LOGGER.Info("SenderEmailAddress: " & msg.SenderEmailAddress) + LOGGER.Info("ReceivedByName: " & msg.ReceivedByName) + LOGGER.Info("ReceivedByEmailAddress: " & msg.ReceivedByEmailAddress) LOGGER.Info("") End If _step = "2" @@ -844,7 +861,7 @@ Public Class frmIndex Next Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & CURR_DOKART_OBJECTTYPE & "'") If IsNothing(DT) Then - LOGGER.Info(" >> SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & CURR_DOKART_OBJECTTYPE & "' RESULTED in NOTHING") + LOGGER.Info("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & CURR_DOKART_OBJECTTYPE & "' RESULTED in NOTHING") Return False End If If DT.Rows.Count = 1 Then @@ -904,7 +921,7 @@ Public Class frmIndex _step = "4.2" If IsNothing(msgDisplayTo) Then _step = "4.3" - LOGGER.Info(" >> DisplayTo in email is nothing - default will be set") + LOGGER.Info("DisplayTo in email is nothing - default will be set") emailTo = "NO RECIPIENT" Else _step = "4.4" @@ -912,7 +929,7 @@ Public Class frmIndex End If If IsNothing(msgInternetAccountName) Then _step = "4.5" - LOGGER.Info(" >> InternetAccountName in email is nothing - default will be set") + LOGGER.Info("InternetAccountName in email is nothing - default will be set") emailFrom = "" Else _step = "4.6" @@ -920,7 +937,7 @@ Public Class frmIndex End If Else _step = "5" - LOGGER.Info(" >> emailTo and From Extraction via messageheader.") + LOGGER.Info("emailTo and From Extraction via messageheader.") emailFrom = ClassEmailHeaderExtractor.extractFromHeader(headers, fromPattern) 'FromRegexList) emailTo = ClassEmailHeaderExtractor.extractFromHeader(headers, toPattern) ' extractToAddress(headers, ToRegexList) @@ -928,10 +945,10 @@ Public Class frmIndex 'Handler für leere emailTo-Adresse If IsNothing(emailTo) Then _step = "5.1" - LOGGER.Info(" >> emailTo couldn't be extracted from messageheader...") + LOGGER.Info("emailTo couldn't be extracted from messageheader...") If (headers.Contains("exc") Or headers.Contains("exchange")) Then _step = "5.2" - LOGGER.Info(" >> ...try with LDAP-option") + LOGGER.Info("...try with LDAP-option") Dim _email = GetUserEmailfromLDAP(msgDisplayTo) _step = "5.3" If _email <> "" Then @@ -953,7 +970,7 @@ Public Class frmIndex emailTo = CURR_MISSING_MANUAL_VALUE Else _step = "5.4.3" - LOGGER.Info(" >> no exchange patterns found in headers!") + LOGGER.Info("no exchange patterns found in headers!") MsgBox("Could't get 'emailto' from messageHeader and exhange-Patterns weren't found." & vbNewLine & "Please check the dropped email and Configuration of Email-Indexing!", MsgBoxStyle.Exclamation) Return False End If @@ -969,7 +986,7 @@ Public Class frmIndex emailFrom = emailFrom.Replace(">", "") Else _step = "6.1.x" - LOGGER.Info(" >> emailFrom is Nothing?!") + LOGGER.Info("emailFrom is Nothing?!") End If If Not IsNothing(emailTo) Then @@ -993,20 +1010,20 @@ Public Class frmIndex Next Else _step = "6.3" - LOGGER.Info(" >> emailTo is Nothing?!") + LOGGER.Info("emailTo is Nothing?!") End If - LOGGER.Info(" >> Headers-Content: ") + LOGGER.Info("Headers-Content: ") LOGGER.Info(headers.ToString) End If 'Handler für leere emailFrom-Adresse If IsNothing(emailFrom) Then _step = "7" - LOGGER.Info(" >> emailFrom couldn't be extracted from messageheader...") + LOGGER.Info("emailFrom couldn't be extracted from messageheader...") If Not IsNothing(msg.SenderEmailAddress) Then If msg.SenderEmailAddress <> String.Empty Then _step = "7.1" - LOGGER.Info(" >> emailFrom via msg.SenderEmailAddress will be used instead!") + LOGGER.Info("emailFrom via msg.SenderEmailAddress will be used instead!") emailFrom = msg.SenderEmailAddress.ToString.Replace("'", "") End If End If @@ -1026,8 +1043,8 @@ Public Class frmIndex End If End If - LOGGER.Info(" >> emailFrom: " & emailFrom) - LOGGER.Info(" >> emailTo: " & emailTo) + LOGGER.Info("emailFrom: " & emailFrom) + LOGGER.Info("emailTo: " & emailTo) 'FROM If Not IsNothing(emailFrom) Then indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_FROM").ToString, emailFrom) @@ -1036,7 +1053,7 @@ Public Class frmIndex Return False End If Else - LOGGER.Info(" >> emailFrom is still Nothing?!") + LOGGER.Info("emailFrom is still Nothing?!") _step = "7.4" End If 'TO @@ -1047,14 +1064,14 @@ Public Class frmIndex Return False End If Else - LOGGER.Info(" >> emailTo is still Nothing?!") + LOGGER.Info("emailTo is still Nothing?!") _step = "7.5" End If ' Dim subj As String = ClassFormFunctions.CleanInput(msg.Subject) Dim subj As String = msg.Subject If IsNothing(subj) Or subj = "" Then - LOGGER.Info(" >> msg subject is empty...DEFAULT will be set") + LOGGER.Info("msg subject is empty...DEFAULT will be set") subj = "No subject" MsgBox("Attention: Email was send without a subject - Default value 'No subject' will be used!", MsgBoxStyle.Exclamation) Else @@ -1064,16 +1081,16 @@ Public Class frmIndex End If End If - LOGGER.Info(" >> Now all email-items will be indexed!") + LOGGER.Info("Now all email-items will be indexed!") - LOGGER.Info(" >> subj: " & subj) + LOGGER.Info("subj: " & subj) indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, subj) CURRENT_MESSAGESUBJECT = subj If indexierung_erfolgreich = False Then MsgBox("Error in SetEmailIndices [Subject] - See log", MsgBoxStyle.Critical) Return False End If - LOGGER.Info(" >> MessageDeliveryTime: " & msg.MessageDeliveryTime) + LOGGER.Info("MessageDeliveryTime: " & msg.MessageDeliveryTime) indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_DATE_IN").ToString, msg.MessageDeliveryTime) CURRENT_MESSAGEDATE = msg.MessageDeliveryTime If indexierung_erfolgreich = False Then @@ -1177,6 +1194,11 @@ Public Class frmIndex Private Function SINGLEFILE_2_WINDREAM(_Objekttyp As String) Try CURR_DOKART_OBJECTTYPE = _Objekttyp + Dim oWMCheckPath = WINDREAM.VersionWMFilename(CURRENT_NEWFILENAME, System.IO.Path.GetExtension(CURRENT_NEWFILENAME)) + If CURRENT_NEWFILENAME.ToUpper <> oWMCheckPath.ToString.ToUpper Then + LOGGER.Info($"Target [{CURRENT_NEWFILENAME}] already existed!! - NewWMFilename [{oWMCheckPath}]") + CURRENT_NEWFILENAME = oWMCheckPath + End If Dim streamresult = WINDREAM.NewFileStream(CURRENT_WORKFILE, CURRENT_NEWFILENAME) If CONFIG.Config.DeleteOriginalFile = True Then @@ -1382,14 +1404,14 @@ Public Class frmIndex ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Then Select Case DropType Case "|FW_MSGONLY|" - LOGGER.Info(" >> .msg-file from folderwatch") + LOGGER.Info(".msg-file from folderwatch") If USER_LANGUAGE <> "de-DE" Then Me.Text = "Indexing of msg-File (without Attachments) - from Folderwatch" Else Me.Text = "Indexierung der msg-Datei (ohne Anhang) - aus Folderwatch" End If Case "|OUTLOOK_MESSAGE|" - LOGGER.Info(" >> .msg-file through dragdrop") + LOGGER.Info(".msg-file through dragdrop") If USER_LANGUAGE <> "de-DE" Then Me.Text = "Indexing of msg-File (without Attachments)" Else @@ -1513,7 +1535,7 @@ Public Class frmIndex Sub Refresh_Dokart() Try Dim sql = String.Format("select * from VWGI_DOCTYPE where UPPER(USERNAME) = UPPER('{0}') ORDER BY SEQUENCE", Environment.UserName) - LOGGER.Info(" >> SQL DoctypeList: " & sql) + LOGGER.Info("SQL DoctypeList: " & sql) DT_DOKART = ClassDatabase.Return_Datatable(sql) cmbDokumentart.DataSource = DT_DOKART cmbDokumentart.ValueMember = DT_DOKART.Columns("DOCTYPE_ID").ColumnName @@ -1798,14 +1820,14 @@ Public Class frmIndex oSqlResult = oSqlResult.Replace(oMatch.Value, oManualIndexResult) End If Next - If oSqlResult <> String.Empty Then - LOGGER.Info(" oSqlResult afrer first Replace: " & oSqlResult) - End If + 'TODO: Replace Windream Patterns? oSqlResult = ClassPatterns.ReplaceControlValues(oSqlResult, pnlIndex) oSqlResult = ClassPatterns.ReplaceInternalValues(oSqlResult) - + If oSqlResult <> String.Empty Then + LOGGER.Debug("oSqlResult after Replace [" & oSqlResult & "]") + End If ' Ergebnis: Es wurden alle einfachen Platzhalter ersetzt, jetzt haben wir einen SQL Befehl, ' der nur noch vektorfelder-platzhalter enthält @@ -1871,7 +1893,7 @@ Public Class frmIndex ' For Each DR_AUTOINDEX As DataRow In DT_INDEXAUTOM.Rows ' Dim optionalIndex As Boolean ' Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME") - ' LOGGER.Info(" >> Build Automatischer Index '" & indexname & "'") + ' LOGGER.Info("Build Automatischer Index '" & indexname & "'") ' If DR_AUTOINDEX.Item("SQL_RESULT").ToString <> String.Empty And CBool(DR_AUTOINDEX.Item("SQL_ACTIVE")) = True Then ' ' Regulären Ausdruck zum Auslesen der windream-Indexe definieren ' Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" @@ -1885,12 +1907,12 @@ Public Class frmIndex ' For Each element As System.Text.RegularExpressions.Match In elemente ' ' MsgBox(element.Value.ToUpper) - ' LOGGER.Info(" >> Element: '" & element.Value & "'") + ' LOGGER.Info("Element: '" & element.Value & "'") ' '' wenn es sich nicht um dedizeirte Werte handelt (es sollen ja nur die Indexe ausgelesen werden) ' 'If Not element.Value.ToUpper = "[%SPALTE]" And Not element.Value.ToUpper = "[%VIEW]" Then ' 'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index) ' Dim elementOhneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3) - ' LOGGER.Info(" >> elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'") + ' LOGGER.Info("elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'") ' optionalIndex = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & elementOhneSonderzeichen & "')", MyConnectionString, True) ' If elementOhneSonderzeichen.StartsWith("$") Then 'windowsParameter ' Dim result = "" @@ -1926,7 +1948,7 @@ Public Class frmIndex ' MsgBox("Unexpected error in Replacement WindowsFilePatterns: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Routine will continue - Please check logfile", MsgBoxStyle.Exclamation, ) ' End Try ' If result <> "" Then - ' LOGGER.Info(" >> file-related parameter found: '" & elementOhneSonderzeichen & "' - Result: '" & result & "'") + ' LOGGER.Info("file-related parameter found: '" & elementOhneSonderzeichen & "' - Result: '" & result & "'") ' SqlString = SqlString.Replace(element.Value, result) ' Else ' LOGGER.Info(">> Attention: file-related parameter '" & elementOhneSonderzeichen & "' returned an empty string!") @@ -1943,11 +1965,11 @@ Public Class frmIndex ' End If ' Next - ' LOGGER.Info(" >> Replaced and complete SQL-result: " & SqlString) - ' LOGGER.Info(" >> Ausführen SQL....") + ' LOGGER.Info("Replaced and complete SQL-result: " & SqlString) + ' LOGGER.Info("Ausführen SQL....") ' Dim automatischerValue As String = "" ' automatischerValue = GetAutomaticIndexSQLValue(SqlString, DR_AUTOINDEX.Item("CONNECTION_ID"), DR_AUTOINDEX.Item("SQL_PROVIDER")) - ' LOGGER.Info(" >> Ergebnis SQL: '" & automatischerValue & "'") + ' LOGGER.Info("Ergebnis SQL: '" & automatischerValue & "'") ' If automatischerValue <> String.Empty Then ' DR_AUTOINDEX.Item("Indexiert") = True ' DR_AUTOINDEX.Item("Indexwert") = automatischerValue @@ -1969,7 +1991,7 @@ Public Class frmIndex ' Dim DEFAULTVALUE As String = DR_AUTOINDEX.Item("VALUE") ' 'Indexierung mit WindowsVariable ' If DEFAULTVALUE.StartsWith("$") Then - ' LOGGER.Info(" >> Indexierung mit einer Windowsvariable: '" & DEFAULTVALUE & "'") + ' LOGGER.Info("Indexierung mit einer Windowsvariable: '" & DEFAULTVALUE & "'") ' Select Case DEFAULTVALUE.ToUpper ' Case "$filename_ext".ToUpper ' DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE) @@ -1995,9 +2017,9 @@ Public Class frmIndex ' DEFAULTVALUE = USER_SHORT_NAME ' End Select - ' LOGGER.Info(" >> Ergebnis der Windowsvariable: '" & DEFAULTVALUE & "'") + ' LOGGER.Info("Ergebnis der Windowsvariable: '" & DEFAULTVALUE & "'") ' Else - ' LOGGER.Info(" >> Indexierung mit einem Festen Wert: '" & DEFAULTVALUE & "'") + ' LOGGER.Info("Indexierung mit einem Festen Wert: '" & DEFAULTVALUE & "'") ' End If ' 'Den Wert in der Zwischentabelle speichern ' DR_AUTOINDEX.Item("Indexiert") = True @@ -2051,25 +2073,24 @@ Public Class frmIndex Private Function WORK_FILE() Try Me.VWDDINDEX_MANTableAdapter.Fill(Me.MyDataset.VWDDINDEX_MAN, CURRENT_DOKART_ID) - LOGGER.Info(" >> Manuelle Indexe geladen") + LOGGER.Debug("Manuelle Indexe geladen") If MyDataset.VWDDINDEX_MAN.Rows.Count > 0 Then CURRENT_DOKART_ID = Me.cmbDokumentart.SelectedValue If CheckWrite_IndexeMan(Me.cmbDokumentart.SelectedValue) = True Then '##### Manuelle Indexe indexiert ##### - LOGGER.Info(" >> Datei " & CURRENT_WORKFILE & " wird nun indexiert...") + LOGGER.Info("Datei [" & CURRENT_WORKFILE & "] wird nun indexiert...") If FillIndexe_Autom(Me.cmbDokumentart.SelectedValue) = True Then - LOGGER.Info(" ...FillIndexe_Autom durchlaufen") + LOGGER.Debug(" ...FillIndexe_Autom durchlaufen") 'Den Zielnamen zusammenbauen If Name_Generieren() = True Then - LOGGER.Info(" ...Name_Generieren durchlaufen") 'Dokumentenviewer ausblenden um keinen Zugriffsfehler zu produzieren DocumentViewer1.Done() - LOGGER.Info(" ...Viewer geschlossen") + LOGGER.Debug(" ...Viewer geschlossen") 'Die Datei verschieben If Move_File2_Target() = True Then - LOGGER.Info(" ...Move_File2_Target durchlaufen") + LOGGER.Debug(" ...Move_File2_Target durchlaufen") 'Die Originaldatei löschen If DropType = "|DROPFROMFSYSTEM|" Then If CURR_DELETE_ORIGIN = True Then @@ -2094,7 +2115,7 @@ Public Class frmIndex End If CURRENT_LASTDOKART = cmbDokumentart.Text - LOGGER.Info(" >> Datei '" & CURRENT_NEWFILENAME & "' erfolgreich erzeugt.") + LOGGER.Info("Datei '" & CURRENT_NEWFILENAME & "' erfolgreich erzeugt.") Dim oDEL As String = "DELETE FROM TBGI_FILES_USER WHERE GUID = " & CURRENT_WORKFILE_GUID ClassDatabase.Execute_non_Query(oDEL, True) Return True @@ -2325,16 +2346,16 @@ Public Class frmIndex '#### ' alle Vorkommen innerhalb des Ordnerstrings durchlaufen For Each element As Match In elemente - LOGGER.Info(" >> Elementname in FolderString: '" & element.ToString & "'") + LOGGER.Info("Elementname in FolderString: '" & element.ToString & "'") Select Case element.Value.Substring(2, 1).ToUpper 'Manueller Indexwert Case "M" Dim ManIndexname = element.Value.Substring(3, element.Value.Length - 4) Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True) - LOGGER.Info(" >> Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.") + LOGGER.Info("Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.") Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE", optional_index) - LOGGER.Info(" >> Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'") + LOGGER.Info("Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'") If Not ManIndex_Value = String.Empty Then If IsDate(ManIndex_Value) Then ManIndex_Value = CDate(ManIndex_Value).ToString("yyyyMMdd") @@ -2342,11 +2363,11 @@ Public Class frmIndex ManIndex_Value = ClassFilehandle.CleanFilename(ManIndex_Value, "") myDynamicFolder = myDynamicFolder.Replace(element.ToString, ManIndex_Value) - LOGGER.Info(" >> FolderPattern: '" & myDynamicFolder & "'") + LOGGER.Info("FolderPattern: '" & myDynamicFolder & "'") Else If optional_index = True Then - LOGGER.Info(" >> Optionaler Indexwert ist NICHT gefüllt") + LOGGER.Info("Optionaler Indexwert ist NICHT gefüllt") Else LOGGER.Info(" - Achtung Ausnahme in 'CrFolderForIndex': der Index ist leer!") Return True @@ -2354,16 +2375,16 @@ Public Class frmIndex End If Case "A" Dim AutoIndexname = element.Value.Substring(3, element.Value.Length - 4) - LOGGER.Info(" >> Versuch den Auto-Indexwert aus '" & AutoIndexname & "' auszulesen.") + LOGGER.Info("Versuch den Auto-Indexwert aus '" & AutoIndexname & "' auszulesen.") Dim AutoIndex_Value As String = GetAutoIndex_Value(AutoIndexname) - LOGGER.Info(" >> Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'") + LOGGER.Info("Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'") If Not AutoIndex_Value = String.Empty Then AutoIndex_Value = ClassFilehandle.CleanFilename(AutoIndex_Value, "") If AutoIndex_Value = "EMPTY_OI" Then myDynamicFolder = myDynamicFolder.Replace(element.ToString, "") Else myDynamicFolder = myDynamicFolder.Replace(element.ToString, AutoIndex_Value) - LOGGER.Info(" >> FolderPattern: '" & myDynamicFolder & "'") + LOGGER.Info("FolderPattern: '" & myDynamicFolder & "'") End If Else @@ -2394,7 +2415,7 @@ Public Class frmIndex oElementTemp = My.Computer.Clock.LocalTime.Year & "-" & _Month End Select myDynamicFolder = myDynamicFolder.Replace(element.ToString, oElementTemp) - LOGGER.Info(" >> FolderPatter nach V-Element: '" & myDynamicFolder & "'") + LOGGER.Info("FolderPatter nach V-Element: '" & myDynamicFolder & "'") Case Else LOGGER.Info(" - Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper) @@ -2408,13 +2429,13 @@ Public Class frmIndex - LOGGER.Info(" >> Den Root-Folder zusammenfügen>> ") + LOGGER.Info("Den Root-Folder zusammenfügen>> ") Dim oNewFullpath As String = ORootFolder & "\" & myDynamicFolder & "\" oNewFullpath = oNewFullpath.Replace("\\", "\") oNewFullpath = Path.Combine(ORootFolder, myDynamicFolder) - LOGGER.Info(" >> Fullpath (mit evtl. Sonderzeichen (SZ)) '" & oNewFullpath & "'") + LOGGER.Info("Fullpath (mit evtl. Sonderzeichen (SZ)) '" & oNewFullpath & "'") Dim invalidPathChars() As Char = Path.GetInvalidPathChars() For Each sonderChar As Char In invalidPathChars 'Sonderzeichen ausser Whitespace entfernen @@ -2424,13 +2445,13 @@ Public Class frmIndex End If End If Next sonderChar - LOGGER.Info(" >> Fullpath (ohne SZ) '" & oNewFullpath & "'") + LOGGER.Info("Fullpath (ohne SZ) '" & oNewFullpath & "'") If Directory.Exists(oNewFullpath) = False Then Try Directory.CreateDirectory(oNewFullpath) - LOGGER.Info(" >> Folder '" & oNewFullpath & "' wurde angelegt") + LOGGER.Info("Folder '" & oNewFullpath & "' wurde angelegt") Catch ex As Exception - LOGGER.Info(" >> Error in CreateFolderforIndex-Method - Root Folder '" & oNewFullpath & "' could not be created. " & ex.Message) + LOGGER.Info("Error in CreateFolderforIndex-Method - Root Folder '" & oNewFullpath & "' could not be created. " & ex.Message) LOGGER.Error(ex.Message) MsgBox("Attention: Root Folder '" & oNewFullpath & "' could not be created." & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False @@ -2443,7 +2464,7 @@ Public Class frmIndex Return True Catch ex As Exception MsgBox("Unexpected Error in CreateFolderforIndex-Method:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - LOGGER.Info(" >> Fehler in CrFolderForIndex: " & ex.Message) + LOGGER.Info("Fehler in CrFolderForIndex: " & ex.Message) Return False End Try End Function diff --git a/SetupVS19/Product.wxs b/SetupVS19/Product.wxs index 821b01b..4c996ac 100644 --- a/SetupVS19/Product.wxs +++ b/SetupVS19/Product.wxs @@ -115,6 +115,7 @@ +