У меня есть метод, который проверяет наличие файла перед выполнением некоторых манипуляций с содержимым файла следующим образом:
Private Sub AddHeaderToLogFile()
''#Only if file does not exist
If Not File.Exists(_logPath) Then
Dim headerLogger As Logger
headerLogger = LogManager.GetLogger("HeaderLogger")
''#Use GlobalDiagnosticContext in 2.0, GDC in pre-2.0
NLog.GlobalDiagnosticsContext.Set("appName", _appName)
NLog.GlobalDiagnosticsContext.Set("fileVersion", _fileVersion)
NLog.GlobalDiagnosticsContext.Set("logId", 0)
headerLogger.Info("")
End If
End Sub
Идея состоит в том, что если файл не существует, то файлгенерируется при обращении к экземпляру регистратора NLog, после чего файл создается и вставляется указанная информация заголовка.Метод отлично работает из самого приложения, однако у меня есть простой тест NUnit, который реализует метод теста, чтобы проверить, что файл создан и заполнен, как и ожидалось.Проходя через отладчик, я обнаружил, что для параметра _logPath установлено значение:
D: \ Documents and Settings \ TE602510 \ Локальные настройки \ Temp \ nunit20 \ ShadowCopyCache \ 4288_634286300896838506 \ Tests_-1937845265 \ assembly \dl3 \ 7cdfe61a \ aa18c98d_f0a1cb01 \ logs \ 2010-12-22.log
К сожалению, несмотря на то, что файл существует, вызов File.Exists возвращает false.При более раннем просмотре пути конфигурации указанный путь будет правильным для этих тестов NUnit.Кто-нибудь знает, что здесь происходит и что мне нужно сделать, чтобы получить желаемый результат?Путь к файлу журнала в соответствии с файловой системой XP:
D: \ Documents and Settings \ TE602510 \ Мои документы_VSSWorkArea \ PsalertsIp \ Tests \ bin \ Debug \ logs
С уважением
Пол Дж.