Add WidigShared Project, seperate all logig into this shared project

This commit is contained in:
Jonathan Jenne
2021-08-02 10:54:43 +02:00
parent 3d55af8502
commit b8250583e1
25 changed files with 955 additions and 790 deletions

View File

@@ -1,16 +0,0 @@
Imports DigitalData.Modules.Config.ConfigAttributes
Public Class ClassConfig
' Global Settings (from computerconfig, overridable by userconfig)
<ConnectionString>
Public Property ConnectionString As String = ""
Public Property WMUsername As String = ""
Public Property WMUserPW As String = ""
Public Property WMDrive As String = "W"
Public Property WMRelPath As String = ""
Public Property WMServer As String = ""
Public Property Domain As String = ""
Public Property LOG_DEBUG As Boolean = False
End Class

View File

@@ -1,68 +0,0 @@
Imports System.Security.Cryptography
Public Class ClassEncryption
Private TripleDes As New TripleDESCryptoServiceProvider
Sub New(ByVal key As String)
' Initialize the crypto provider.
TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
End Sub
Private Function TruncateHash(
ByVal key As String,
ByVal length As Integer) As Byte()
Dim sha1 As New SHA1CryptoServiceProvider
' Hash the key.
Dim keyBytes() As Byte =
System.Text.Encoding.Unicode.GetBytes(key)
Dim hash() As Byte = sha1.ComputeHash(keyBytes)
' Truncate or pad the hash.
ReDim Preserve hash(length - 1)
Return hash
End Function
Public Function EncryptData(
ByVal plaintext As String) As String
' Convert the plaintext string to a byte array.
Dim plaintextBytes() As Byte =
System.Text.Encoding.Unicode.GetBytes("!Didalog35452Heuchelheim=" & plaintext)
' Create the stream.
Dim ms As New System.IO.MemoryStream
' Create the encoder to write to the stream.
Dim encStream As New CryptoStream(ms,
TripleDes.CreateEncryptor(),
System.Security.Cryptography.CryptoStreamMode.Write)
' Use the crypto stream to write the byte array to the stream.
encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
encStream.FlushFinalBlock()
' Convert the encrypted stream to a printable string.
Return Convert.ToBase64String(ms.ToArray)
End Function
'Entschlüsselt die Zeichenfolge
Public Function DecryptData(
ByVal encryptedtext As String) As String
' Convert the encrypted text string to a byte array.
Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)
' Create the stream.
Dim ms As New System.IO.MemoryStream
' Create the decoder to write to the stream.
Dim decStream As New CryptoStream(ms,
TripleDes.CreateDecryptor(),
System.Security.Cryptography.CryptoStreamMode.Write)
' Use the crypto stream to write the byte array to the stream.
decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
decStream.FlushFinalBlock()
Dim result = System.Text.Encoding.Unicode.GetString(ms.ToArray)
result = result.Replace("!Didalog35452Heuchelheim=", "")
' Convert the plaintext stream to a string.
Return result
End Function
End Class

View File

@@ -5,391 +5,88 @@ Imports DigitalData.Modules.Config
Imports System.IO
Imports System.Text.RegularExpressions
Imports DigitalData.Modules.Database
Imports DigitalData.GUIs.WiDigShared
Module ModuleMain
Private _ArgumentLength As Integer
Public _database As MSSQLServer
Public oRegExArg As String
Public oRegex As New Regex("([\s\S]+)\={([\s\S]+)}")
Public Const CODE_SUCCESS = 0
Public Const CODE_ERROR = 1
Public Const MODE_OVERWRITE = "IMPO"
Public Const MODE_VERSION = "IMPV"
Public Const MODE_NACHINDEXIERUNG = "NI"
Public Const PARAM_SOURCE = "-Source@"
Public Const PARAM_MODE = "-Mode@"
Public Const PARAM_TARGET = "-Target@"
Public Const PARAM_WMTO = "-WMOT@"
Public Const PARAM_INDEX = "-index@"
Public LogConfig As LogConfig
Public Logger As Logger
Public Config As ConfigManager(Of ClassConfig)
Public Function Main(CommandLineArguments As String()) As Integer
Dim oReturnResult As Integer
Dim oWiDig As ClassWIDig
Try
oReturnResult = CODE_SUCCESS
' Console.WriteLine("Starting up WIDig...")
Dim opath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Dim oLogConfig As New LogConfig(LogConfig.PathType.AppData, Nothing, "Console", "Digital Data", "WIDig")
System.Console.WriteLine($"Initializing WIDig...")
System.Console.WriteLine($"Logging...")
LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, "Console", "Digital Data", "WIDig")
Logger = LogConfig.GetLogger
LOGCONFIG = oLogConfig
LOGGER = LOGCONFIG.GetLogger
InitUserConfig()
LOGCONFIG.Debug = CONFIG.Config.LOG_DEBUG
LOGGER = LOGCONFIG.GetLogger
Dim oUserPW = GetUserPWPlain()
System.Console.WriteLine($"Config...")
Config = New ConfigManager(Of ClassConfig)(LogConfig, ClassWIDig.GetAppDataPath, ClassWIDig.GetProgramDataPath)
LogConfig.Debug = Config.Config.LOG_DEBUG
System.Console.WriteLine($"Main Class...")
oWiDig = New ClassWIDig(LogConfig, Config.Config)
Catch ex As Exception
Logger.Warn("Could not initialize WiDig because of an error: [{0}]", ex.Message)
Logger.Error(ex)
Return ClassWIDig.CODE_ERROR
End Try
Try
System.Console.WriteLine($"Starting up WIDig...")
If Connect2Windream(oUserPW) = False Then
Dim oUserPW = oWiDig.GetUserPWPlain()
If oWiDig.Connect2Windream(oUserPW) = False Then
Throw New ApplicationException("Could not initialize windream")
End If
System.Console.WriteLine($"Windream initialized!")
If InitDatabase() = False Then
If oWiDig.InitDatabase() = False Then
Throw New ApplicationException("Could not initialize DB")
End If
System.Console.WriteLine($"Database initialized!")
If Load_DB_DAta() = False Then
Throw New ApplicationException("Could not load Regex from Database")
End If
System.Console.WriteLine($"Regex loaded from Database!")
If ParseArgs(CommandLineArguments) = False Then
If oWiDig.ParseArgs(CommandLineArguments) = False Then
Throw New ApplicationException("Could not parse command line arguments")
End If
System.Console.WriteLine($"Command line arguments parsed!")
If StreamORIndexFile() = False Then
If oWiDig.StreamORIndexFile() = False Then
Throw New ApplicationException("Could not stream or index file")
End If
System.Console.WriteLine($"File indexed or streamed!")
' Brauchen Sie das überhaupt?
If oErrorParse = True Or oErrorImport = True Then
Throw New ApplicationException(oErrorMessage)
If oWiDig.ErrorWhileParsing = True Or oWiDig.ErrorWhileImporting Then
Throw New ApplicationException(oWiDig.ErrorMessage)
End If
Return CODE_SUCCESS
Return ClassWIDig.CODE_SUCCESS
Catch ex As Exception
LOGGER.Warn("Could not process file because of an error: {0}", oErrorMessage)
LOGGER.Warn("Error at Parse Stage: [{0}]", oErrorParse)
LOGGER.Warn("Error at Import Stage: [{0}]", oErrorImport)
LOGGER.Error(ex)
Logger.Warn("Could not process file because of an error: [{0}]", oWiDig.ErrorMessage)
Logger.Warn("Error at Parse Stage: [{0}]", oWiDig.ErrorWhileParsing)
Logger.Warn("Error at Import Stage: [{0}]", oWiDig.ErrorWhileimporting)
Logger.Error(ex)
Return CODE_ERROR
End Try
End Function
Public Sub InitUserConfig()
Dim oProgramDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Digital Data", "WIDig")
Dim oUserAppDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Digital Data", "WIDig")
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, oUserAppDataPath, oProgramDataPath)
End Sub
Public Function InitDatabase() As Boolean
If CONFIG.Config.ConnectionString.Length = 0 Then
Return False
End If
Try
_database = New MSSQLServer(LOGCONFIG, CONFIG.Config.ConnectionString)
If _database.DBInitialized = True Then
Return True
Else
Return False
End If
Catch ex As Exception
LOGGER.Error(ex)
Return False
Return ClassWIDig.CODE_ERROR
End Try
End Function
Public Function Load_DB_DAta()
Try
Dim oSql = "SELECT [REGEX] FROM [TBDD_FUNCTION_REGEX] WHERE FUNCTION_NAME = 'WM-INDEXER-INDEX_GROUP'"
oRegExArg = _database.GetScalarValue(oSql, 120)
If oRegExArg.Length = 0 Then
oRegExArg = 0
End If
Return True
Catch ex As Exception
LOGGER.Error(ex)
Return False
End Try
End Function
Private Function Connect2Windream(oPW As String)
Try
WINDREAM = New Windream(LOGCONFIG, False, CONFIG.Config.WMDrive, CONFIG.Config.WMRelPath, True, CONFIG.Config.WMServer, CONFIG.Config.WMUsername, oPW, CONFIG.Config.Domain)
If Not IsNothing(WINDREAM) Then
If WINDREAM.SessionLoggedin = True Then
LOGGER.Debug("windream initialisiert")
Return True
End If
End If
Return False
Catch ex As Exception
LOGGER.Warn("CHECKING WMConnectivity: " & ex.Message)
Return False
End Try
End Function
Private Function GetUserPWPlain()
Try
Dim oPassword As String
Dim oEncryption As New ClassEncryption("!35452didalog=")
If CONFIG.Config.WMUserPW = String.Empty Then
oPassword = ""
Else
oPassword = oEncryption.DecryptData(CONFIG.Config.WMUserPW)
End If
Return oPassword
Catch ex As Exception
LOGGER.Warn("Error in GetUserPWPlain - the password [" & CONFIG.Config.WMUserPW & "] could not be decrypted", False)
Return String.Empty
End Try
End Function
Public Function ParseArgs(pArguments As String(), Optional pTest As Boolean = False)
Dim oINDEXInfoStarted As Boolean = False
Dim oINDEXInfotemp As String = ""
Try
If pArguments.Length <= 3 Then
_ArgumentLength = pArguments.Length
LOGGER.Warn($"Insufficient number of arguments [{pArguments.Length}]!")
System.Console.WriteLine($"Insufficient number of arguments - {Now.ToString}")
oErrorParse = True
Return False
End If
Dim oCount As Integer = 0
For Each oArg As String In pArguments
LOGGER.Debug($"[{oCount}] {oArg}")
oArg = oArg.Replace("""", "")
If oArg.StartsWith(PARAM_SOURCE) Then
oSourceFile = oArg.Replace(PARAM_SOURCE, "")
If IsNumeric(oSourceFile) Then
LOGGER.Info($"SourceFile seems to be a DocID [{oSourceFile}]")
Dim oSQL = $"SELECT [dbo].[FNDD_GET_WINDREAM_FILE_PATH] ({oSourceFile})"
oSourceFile = _database.GetScalarValue(oSQL)
End If
If System.IO.File.Exists(oSourceFile) = False Then
LOGGER.Warn($"Parser@Sourcefile - File [{oSourceFile}] is not existing!")
oErrorMessage &= vbNewLine & $"Parser@Sourcefile - File [{oSourceFile}] is not existing!"
oErrorParse = True
Return False
End If
ElseIf oArg.StartsWith(PARAM_MODE) Then
oMode = oArg.Replace(PARAM_MODE, "").ToUpper
ElseIf oArg.StartsWith(PARAM_TARGET) Then
oTargetPath = oArg.Replace(PARAM_TARGET, "")
If IsNumeric(oTargetPath) Then
LOGGER.Info($"Target seems to be a DocID [{oTargetPath}]")
Dim oSQL = $"SELECT [dbo].[FNDD_GET_WINDREAM_FILE_PATH] ({oTargetPath})"
oSourceFile = _database.GetScalarValue(oSQL)
End If
Dim oWMFolder = System.IO.Path.GetDirectoryName(oTargetPath)
Dim oWindowsPath = oTargetPath
oExtension = Path.GetExtension(oWindowsPath)
Dim oNormalizePath = WINDREAM.GetNormalizedPath(oTargetPath)
If WINDREAM.TestFileExists(oTargetPath) = False Then
LOGGER.Info($"WMFile [{oTargetPath}] not existing!")
End If
If oMode = MODE_VERSION Then
Dim oWMCheckPath = WINDREAM.VersionWMFilename(oTargetPath, System.IO.Path.GetExtension(oTargetPath))
If oNormalizePath.ToUpper <> oWMCheckPath.ToString.ToUpper Then
LOGGER.Info($"Target [{oNormalizePath}] already existed!! - NewWMFilename [{oWMCheckPath}]")
oTargetPath = oWMCheckPath
End If
End If
'Checks and creates the path if necessary
WINDREAM.NewFolder(oTargetPath, oExtension)
ElseIf oArg.StartsWith(PARAM_WMTO) Then
oWMObjecttype = oArg.Replace(PARAM_WMTO, "")
Dim oexists As Boolean = False
Dim myWMOTypes = WINDREAM.ObjectTypes
For Each otype As String In myWMOTypes
If oWMObjecttype = otype Then
oexists = True
Exit For
End If
Next
If oexists = False Then
LOGGER.Info($"WMObjekttype [{oWMObjecttype}] not existing!!")
oErrorMessage &= vbNewLine & $"WMObjekttype [{oWMObjecttype}] not existing!!"
Return False
oErrorParse = True
Else
WMIndices = WINDREAM.GetIndiciesByObjecttype(oWMObjecttype)
End If
ElseIf oArg.StartsWith(PARAM_INDEX) Then
oINDEXInfotemp = oArg
oINDEXInfoStarted = True
oINDEXInfotemp = oINDEXInfotemp.Replace(PARAM_INDEX, "")
Else
If oINDEXInfoStarted Then
oINDEXInfotemp &= " " & oArg
End If
End If
oCount += 1
Next
LOGGER.Debug("INDEXInfoTemp: [{0}]", oINDEXInfotemp)
Dim oIndexparts As List(Of String) = oINDEXInfotemp.
Split(New String() {"#~#"}, StringSplitOptions.RemoveEmptyEntries).
ToList()
For Each oIndexPart As String In oIndexparts
LOGGER.Debug(oIndexPart)
Next
LOGGER.Info($" [{oIndexparts.Count}] Indices parsed")
oIndexArr = oIndexparts
Return True
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Error in ParseArgs:" & vbNewLine & ex.Message)
oErrorMessage &= vbNewLine & "Error in ParseArgs:" & vbNewLine & ex.Message
oErrorParse = True
System.Console.WriteLine($"Error in ParseArgs - {Now.ToString}")
Return False
End Try
End Function
Public Function StreamORIndexFile()
Try
Dim oResult As Boolean = False
If oMode = MODE_VERSION Then
oResult = WINDREAM.NewFileStream(oSourceFile, oTargetPath)
ElseIf oMode = MODE_OVERWRITE Then
Dim oDeleted = WINDREAM.RemoveFile(oTargetPath)
If oDeleted = True Then
oResult = WINDREAM.NewFileStream(oSourceFile, oTargetPath)
Else
LOGGER.Warn($"Mode ImportOverwrite is active - but WMFile could not be deleted!!")
End If
ElseIf oMode = MODE_NACHINDEXIERUNG Then
oResult = True
End If
If oResult = True Then
If oMode <> MODE_NACHINDEXIERUNG Then
LOGGER.Info($"File successfully streamed to windream [{oTargetPath}]! Now indexing...")
End If
For Each oIndex As String In oIndexArr
Dim oMatch As Match = oRegex.Match(oIndex)
If oMatch.Success Then
Dim oIndexName = oMatch.Groups(1)?.Value
Dim oIndexValues = oMatch.Groups.Item(2)?.Value
Dim oSplitValue = New String() {"~#~"}
Dim oIndexValueArray = oIndexValues.Split(oSplitValue, StringSplitOptions.RemoveEmptyEntries)
Dim oIndexResult = False
LOGGER.Info("Setting Index [{0}] to [{1}].", oIndexName, oIndexValues)
If WINDREAM.TestIndexNameIsVectorIndex(oIndexName) Then
Dim oCombinedIndexValues = WINDREAM.GetVectorData(oTargetPath, oIndexName, oIndexValueArray, False)
oIndexResult = WINDREAM.SetFileIndex(oTargetPath, oIndexName, oCombinedIndexValues.ToList, oWMObjecttype)
Else
oIndexResult = WINDREAM.SetFileIndex(oTargetPath, oIndexName, oIndexValueArray(0), oWMObjecttype)
End If
oResult = oIndexResult
Else
oResult = False
End If
If oResult = False Then
LOGGER.Warn("Indexing failed. Exiting.")
Exit For
End If
Next
End If
If oResult = True Then
LOGGER.Info("## All Tasks finished ##")
oErrorImport = False
End If
'If oResult = True Then
' If oMode <> MODE_NACHINDEXIERUNG Then
' LOGGER.Info($"File successfully streamed to windream [{oTargetPath}]! Now indexing...")
' End If
' For Each oIndex2 As String In oIndexArr
' Dim oIndexInfo() = oIndex2.Split("={")
' Dim oIndexName = oIndexInfo(0)
' Dim oIndexvalue
' Dim r As Regex = New Regex(oRegExArg, RegexOptions.IgnoreCase)
' ' ' Match the regular expression pattern against a text string.
' Dim m As Match = r.Match(oIndex2)
' Do While m.Success
' ' oClearedBodyText = oClearedBodyText.Replace(m.Value, "")
' 'Dim g As Group = m.Groups(1)
' Dim g1 As Group = m.Groups(2)
' Dim g2 As Group = m.Groups(3)
' If Not IsNothing(g2.Value) Then
' oIndexvalue = g2.Value
' Console.WriteLine($"Indexvalue: {oIndexvalue}")
' End If
' If Len(oIndexvalue) > 0 Then
' If WMIndices.Contains(oIndexName) Then
' LOGGER.Info($"Setting Index: oIndexName [{oIndexName}] - oIndexvalue [{oIndexvalue}]")
' 'DEBUG
' oIndexvalue = New List(Of String) From {"Wert 1", "Wert 2", "wert 3"}
' 'DEBUG
' If WINDREAM.SetFileIndex(oTargetPath, oIndexName, oIndexvalue, oWMObjecttype) = False Then
' LOGGER.Info($"Index could not be set...")
' If WINDREAM.RemoveFile(oTargetPath) = True Then
' LOGGER.Info($"File deleted after error!")
' End If
' oResult = False
' Exit For
' End If
' Else
' LOGGER.Warn($"Transmitted index with name [{oIndexName}] is not existing in WM Objecttype!")
' If WINDREAM.RemoveFile(oTargetPath) = True Then
' LOGGER.Info($"File deleted after error!")
' End If
' oResult = False
' Exit For
' End If
' End If
' m = m.NextMatch()
' Loop
' Next
' If oResult = True Then
' LOGGER.Info("## All Tasks finished ##")
' oErrorImport = False
' End If
'End If
Return oResult
Catch ex As Exception
LOGGER.Warn($"Unexpected Error in StreamORIndexFile: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
End Module

View File

@@ -1,19 +0,0 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Windream
Imports DigitalData.Modules.Config
Module ModuleRuntime
Public LOGCONFIG As LogConfig
Public LOGGER As Logger
Public WINDREAM As Windream
Public CONFIG As ConfigManager(Of ClassConfig)
Public oMode As String = "IMPV"
Public oErrorParse As Boolean = False
Public oErrorMessage As String
Public oErrorImport As Boolean = True
Public oSourceFile As String
Public oTargetPath As String
Public oWMObjecttype As String
Public oIndexArr As List(Of String)
Public WMIndices As List(Of String)
Public oExtension As String
End Module

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.3.6.0")>
<Assembly: AssemblyVersion("1.3.8.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -53,6 +53,10 @@
<Reference Include="DigitalData.Modules.Database">
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Encryption, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDMonorepo\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Logging, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
@@ -61,12 +65,18 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDMonorepo\Modules.Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath>
</Reference>
<Reference Include="NLog">
<HintPath>..\..\DDMonorepo\Modules.Windream\bin\Debug\NLog.dll</HintPath>
<Reference Include="Microsoft.CSharp" />
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.0\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@@ -85,8 +95,6 @@
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="ClassConfig.vb" />
<Compile Include="ClassEncryption.vb" />
<Compile Include="ModuleMain.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
@@ -103,7 +111,6 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="ModuleRuntime.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="My Project\Resources.resx">
@@ -124,6 +131,13 @@
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WiDigShared\WiDigShared.vbproj">
<Project>{a5d032d4-abdc-44bf-8666-5fbe42af0ab7}</Project>
<Name>WiDigShared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartArguments>-Mode%40NI -Source%40"\\Windream\Objects\ImportWIDIG\Testfile2.pdf" -Target%40"W:\ImportWIDIG\Testfile2.pdf" -WMOT%40"DIGITAL DATA - Entwicklung" -index%40Integer 24={0815}#~#Vektor_Text1={"Wert 1"~#~"Wert 2"}</StartArguments>
<StartArguments>-Mode%40NI -Source%40"\\Windream\Objects\ImportWIDIG\Testfile2.pdf" -Target%40"W:\ImportWIDIG\Testfile2.pdf" -WMOT%40"DIGITAL DATA - Entwicklung" -index%40Boolean 04={1}</StartArguments>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.7.0" targetFramework="net461" />
</packages>