У меня есть сценарий в пакете служб SSIS, который должен получить строковое значение из реестра. Если значение реестра существует и в нем есть значение, оно возвращает значение штрафа. Если раздел реестра не существует или значение пустое, я не могу получить значение по умолчанию по какой-либо причине. Я пробовал три разных способа сделать это, но не могу заставить его работать.
Я попытался использовать Registry.GetValue и указать значение по умолчанию, Registry.LocalMachine.CreateSubKey и Registry.LocalMachine.GetValue. Я даже пытался явно проверить на нулевую или нулевую длину, кажется, ничего не работает ... Что я делаю не так?
Public Sub Main()
'Dim strValue As String = DirectCast(Registry.LocalMachine.GetValue("SOFTWARE\MyComp\SSIS\IPSEmail\strLastDate", DateTime.Now.ToString("MMM dd, yyyy HH:mm:ss")), String)
'Dim strValue As String = DirectCast(Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\MyComp\SSIS\IPSEmail", "strLastDate", DateTime.Now.ToString("MMM dd, yyyy HH:mm:ss")), String)
Dim strValue As String = DirectCast(Registry.LocalMachine.CreateSubKey("SOFTWARE\MyComp\SSIS\IPSEmail\strLastDate").GetValue("strLastDate", DateTime.Now.ToString("MMM dd, yyyy HH:mm:ss")), String)
If (strValue = Nothing Or strValue.Length = 0) Then
strValue = DateTime.Now.ToString("MMM dd, yyyy HH:mm:ss")
End If
Dts.ExecutionValue = strValue
Dts.TaskResult = Dts.Results.Success
End Sub