Не удалось создать Microsoft.VisualBasi c .Logging.FileLogTraceListener, Microsoft.VisualBasi c / Не удалось найти часть пути - PullRequest
0 голосов
/ 28 февраля 2020

Это меня озадачило.

Я работаю в Visual Studio 2015. Возникли проблемы с устаревшим консольным приложением.

Это приложение обычно записывает журналы в C: \ AppName \ Ftp \ Log \ (или D на сервере).

Но внезапно кажется, что FileLogTraceListener пытается проверить путь в папке UserName, прежде чем даже проверять пользовательские настройки.

Так ВСЕ код с использованием My.Application.Log завершается с ошибкой заголовка и InnerException:

{"Не удалось найти часть пути" C: \ Users \ UserName \ AppData \ Roaming \ Go / Gd \ AppName.exe \ 8.1.0.0 '.. "}

и трассировка стека InnerExeption: в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath) "& vbCrLf &" в System.IO.Directory.InternalCreateDirectory (String fullPath, путь строки, объект dirSecurityObj, логический checkHost) "& vbCrLf &" в System.IO.Directory.Internal…

Вот часть кода, которую я сейчас пытаюсь запустить. * 1 019 *

My.Application.Log.DefaultFileLogWriter.Location = Logging.LogFileLocation.Custom 

Файл app.config содержит:

<system.diagnostics>
  <sources>
      <!-- This section defines the logging configuration for My.Application.Log -->
      <source name="DefaultSource" switchName="DefaultSwitch">
          <listeners>
              <add name="FileLog"/>
          </listeners>
      </source>
  </sources>
  <sharedListeners>
      <add name="FileLog" 
      type="Microsoft.VisualBasic.Logging.FileLogTraceListener, 
      Microsoft.VisualBasic, 
      Version=8.0.0.0, Culture=neutral, 
      PublicKeyToken=b03f5f7f11d50a3a, 
      processorArchitecture=MSIL" 
      initializeData="FileLogWriter"/>
    </sharedListeners>
  </system.diagnostics> 

Я попытался добавить информацию о местоположении непосредственно в слушателе, но безрезультатно.

Это началось после обновления. Net framework с. Net 4.5.2 до. Net 4.7.2. (Это решение имеет общие проекты с другим решением, которое нуждается в обновлении), я подозреваю, что это проблема / повреждение в этом проекте, поскольку другие консольные приложения на моем компьютере не имеют проблем при входе в ту же папку с этим FW.

1 Ответ

0 голосов
/ 03 марта 2020

Я сомневаюсь, что у кого-то еще будет идеальный trifecta, необходимый для создания этой ошибки, но на всякий случай, вот что:

  1. В вашей сборке есть двуязычная "Компания" (например: Имя / Ном ). В частности, пробел, за которым следует передняя строка sh.
  2. На вкладке отладки снимите флажок «Включить процесс размещения Visual Studio»
  3. Обновите. Net framework до 4.7.2

У нас были первые 2 параметра в нашей системе в течение многих лет, и у нас никогда не было этой проблемы, по какой-то причине обновление. Net фреймворка приводит к тому, что он sh.

...