его нужно класть в исходники, как можно сделать как на ASP чтоб в сборке файл видел?
установи work dir какую тебе нужно или путь до файла от нынешнего work dir
сорян но в гугл я за тебя не пойду )
еще возникла проблема, если путь руками не прописывать, а брать Directory.GetCurrentDirectory() то он выдаст папку с скомпилированным кодом, а мне нужен путь к сборке где исходные файлы, где можно такой взять?
А для чего запущенная программа будет лазить в свои исходники?
чтоб там конфигурацию прочитать
Ааа, а я уж подумал что вот вот родится искуйственный интелект который себя умно перепишет много раз и нам всем кранты ), настройте файлики конфигурации чтобы они при сборке копировались в папку бинаря и все. Нинада лазать в исходники из запущенной программы ))
вот еще проблема возникла на ASP проекте изначально можно читать файлы которые в исходниках, а если сделать publish то будет читать из bin/Release/net6.0/publish/. Как можно сделать такое же поведение в обычном приложении не ASP? там и при дебаге в визуал студио читает файл в папке бинарей, если не изменить workdir, а если workdir изменил получается при publish так же придется в исходники лезть потому что директория другая
Текущая папка запущенного проекта указывает на то место откуда запускалось, а не где лежат исходники, где лежат исходники программе знать не надо, и лазать туда не надо, за такое ногами на собесах бить будут )
надо сделать поведение в обычном приложении как на ASP: при дебаге читает из файлов где исходники а при pubish где бинари
Найдите где хранятся штатные конфиги для вашего типа приложения, и их юзайте, или настройте копирование в выходную папку, в чем проблема то я не пойму, вы даже не говорите на чем приложение у вас
у обычного приложениях их нет, а у ASP приложения и внештатные работали как нужно
У какого обычного? Даже на винформах есть штатный конфиг
Уже конкретика, на консоли настраивайте копирование в вывод.
А как можно сделать как на ASP? там вроде нет тоже никаких спец методов смены директории но при дебаге директория та же где исходники а при publish в бинарях, мне нужно такое же поведение как на ASP
Никак, нет смен директорий, фреймворк просто знает свои конфиги.
как в обычном приложении можно сделать свои конфиги как в ASP?
там не только свои конфиги читались, а и мной созданный файл, который я нигде не регистрировал
ConfigurationBuilder подключи
и потом чото типа такого IConfigurationRoot configuration = new ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .Build();
у меня файл не json разрешения а .env
всеравно не видит .env файл в папке исходников как на ASP
это так же требует размещения файла в папке бинарей как при дебаге так и при publish
ну ты можешь либо его туда запихнуть указав в csproj чтобы складывался к бинарям, либо прогуляться от бинарей до конфига
То что требовалось, при publish копировать к бинарям. Еще нормальный ли подход если debug то workdir будет папка исходников чтоб оттуда читало конфиг, а если publish то workdir папка бинарей?
А можешь объяснить для недалеких чем тебя копирование в выходной каталог не устраивает? Чтобы оно всегда лежало там же где бинари... Автоматически причем. Я не понимаю такого упорства ))
чтоб было удобно как в ASP там так делается как я описал. В ASP не нужно лазить за конфигом в папку бинарей, там конфиг в проекте в исходниках сразу, а при publish перемещает в бинари и оттуда читает
Оно и так вполне удобно, при каждой сборке оно само туда откопируется вместе с бинарями, или тебе нужно на лету менять конфиг? Так консольку то наверное все равно перезапустить придется, нет? Или ты что то там на лету подкладываешь? так это не конфиг уже нифига, а папка обрабатываемых данных )))
к чему здесь на лету? консольное приложение не далет то что ASP, не дает конфиг держать вместе с исходниками и читать оттуда при дебаге а при publish копировать к бинароям и уже оттуда читать
ну если ты его хочешь рядом с бинарями положить тебе его нужно в csproj прописать. то есть тебе не только перезапустить апп нужно, но и csproj потюнить если ты хочешь конфиг файл новый пропихнуть
А нахрена консольке такой функционал, у asp как минимум есть горячий ребилд, и он там смысл имеет, в консольке это зачем?
Я так то ничего такого не хочу ))) это вон у товарисча странные желания ))
Обсуждают сегодня