Использование log4net с отладчиком Visual Studio - PullRequest
0 голосов
/ 18 апреля 2019

У меня проблемы с загрузкой файла log4net.config при использовании Visual Studio в режиме отладки для плагина VSTO для Excel.Файл конфигурации находится в каталоге верхнего уровня моего проекта.У меня есть свойство «Копировать в выходной каталог», установленное в «Копировать всегда».Это гарантирует, что файл будет скопирован в bin / Debug / log4net.config.Я могу убедиться, что это тот случай, когда я строю.

Однако файл не загружается при запуске в режиме отладки.Я перестал пытаться заставить файл загружаться автоматически и решил сделать это по коду, в соответствии с кодом OP в нижней части этого вопроса .

Однако я понял, что янеобходимо было использовать абсолютный путь к файлу конфигурации, так как относительные пути не выбирали его.На дальнейших исследованиях я понял, что исполняющая DLL на самом деле не была DLL в папке debug / bin.Он находился в следующем месте:

C:\Users\cbhandal\AppData\Local\assembly\dl3\MO52QQWP.9ZL\K36XZHGN.1PB\230751e6\d09b7fb2_19f6d401

Также текущий рабочий каталог, найденный System.IO.Directory.GetCurrentDirectory();, был установлен на "C:\\Users\\cbhandal\\Documents".

Жесткое кодирование пути как абсолютного путиработает как в следующем коде:

var log4netConfig = "C:\\" + path + "\\Log4net.config";
var log4netInfo = new FileInfo(log4netConfig);
log4net.Config.XmlConfigurator.ConfigureAndWatch(log4netInfo);

Но это не решение, которое я могу развернуть.Я застрял здесь.Интересно, есть ли способ заставить Visual Studio скопировать файл .config в это расположение appdata / temp, или есть ли способ программно ссылаться на папку, в которой лежала исходная DLL - ту, которая была построена.Или если бы у кого-нибудь было какое-то другое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...