Итак ... Раньше я думал, что когда вы обращаетесь к файлу, но указали имя без пути (в моем случае CAISLog.csv), .NET ожидает, что файл будет находиться на том же пути, что и запущенный .exe ,
Это работает, когда я прохожу решение (C # .NET2. * VS2K5), но когда я запускаю приложение в обычном режиме (запускается монитором Websphere MQ Trigger и работает в фоновом режиме в качестве сетевой службы) вместо обращаясь к файлу по пути, где находится .exe, он ищется в C: \ WINDOWS \ system32. Если это имеет значение .exe родительской задачи находится почти в той же структуре / пути к папке, что и мое приложение
Я получаю соответствующую ошибку: " System.UnauthorizedAccessException: Доступ к пути 'C: \ WINDOWS \ system32 \ CAISLog.csv' запрещен. "
Мой обходной путь - просто определить местоположение моего файла. Однако я хочу понять: «Что такое правило .NET, которое определяет способ разрешения пути, когда во время ввода-вывода указывается только имя файла?» Мне кажется, что мне не хватает какой-то базовой концепции, и это мне плохо.
edit - я не уверен, что это правило .NET само по себе, но Шмули, кажется, объясняет концепцию немного яснее. Я обязательно попробую предложения Роба Пруза в будущем, так что +1 тоже.
Если у кого-то есть предложения по переписыванию, которые подчеркивают, что я не на самом деле заботится о поиске пути к моему .exe - скорее просто не понимает, что происходит с относительным разрешением пути (и Я все еще могу испортить мою терминологию) ...