Подарки от программис'тов
А почему народ специальные общие папки в ОСЭто какие например? c:/windows?
Обозначенные тут и тут, например.
Т.е. у вас на фирме должно быть принято, что все проекты кидают свои файлы в ALLUSERSPROFILE (аналог Environment.SpecialFolder.CommonApplicationData) и далее в своё приложение. Типа такого
ALLUSERSPROFILE/<CompanyName>/<AppName>/
Вы всем прогерам при начале работы говорите путь, где всё должно лежать, чтобы потом другие прогеры не искали чёрт те где и на других машинах запускалось. И чтобы всегда можно было составить путь к файлам приложения из переменной окружения, названия вашей фирмы, названия аппы и чего-нибудь ещё. И какая-нибудь общая либа подключаемая к каждому проекту - где все устоявшиеся названия и пути или части путей есть. Как-то так.
Как же я ненавижу этот форум, который берёт и просто лять удаляет весь на... код со скобками! Но только при попытке редактирования или новой загрузки страницы. Если первый раз отправить - всё норм.
А почему народ специальные общие папки в ОС, которые у всех в одинаковом месте находятся, не использует для этого?
Они не находятся у всех в одинаковом месте :) Но есть много папок с заранее известными alias'ми , которые хранятся в переменных окружения.
Ну и неверное нет на фирме дребования всегда использовать переменные окружения для корневых каталогов ;) Уверен, что ты тоже не страдаешь этой хренью :D
Ну и неверное нет на фирме дребования всегда использовать переменные окружения для корневых каталогов ;) Уверен, что ты тоже не страдаешь этой хренью :D
А вот пришлось пострадать. Кстати, переменные окружения и перечисления специальных папок в .NET могут не совпадать. По названиям так уж точно. Это потому, что в МС тоже "не страдали хренью" и каждая команда писала кто во что горазд - а как воедино свести эти ваши разные перечисления из разных мест - та ипитесь вы там сами. Нам, семизнакам, поф - у нас по полляма зарплата в месяц и опционы. Пару-тройку лет поработал - на пенсию с семью знаками ушёл. Красота!
не искали чёрт те где и на других машинах запускалось.
-----
Зааамечательное (ржу в голос) решение...
Но есть много папок с заранее известными alias'ми , которые хранятся в переменных окружения.
------
Вообще-то в .Net есть класс... кажется SpecialFolders...
а дальше уже забота мелкомягких чтобы оно работало во всех вариантах...
С тем чтобы не работало - пока не сталкивался, но от версии к версии физические места меняются..
Нам, семизнакам, поф - у нас по полляма зарплата в месяц и опционы. Пару-тройку лет поработал - на пенсию с семью знаками ушёл. Красота!
Семизнаки годами выращивают себе партнёров. Всё начинается с партнёров, а уж что им потом впаривать - WPF, ASP.NET MVC, .NET Compact, Windows Mobile, Silverlight, WiX, Blazor, акции, БАДы, рекламу, телефоны - дело десятое. (c)
Кстати, переменные окружения и перечисления специальных папок в .NET могут не совпадать.
Да плевать на перечисления .Net. Речь же шла о батниках :) Какой там .Net? :D
Сделал народ батник для спец. билда. Все хорошо, Но пути абсолютные для компа программиста, который это делал.Новый файлы нужно добавлять вручную в батник
Для какого билда? Если имеется ввиду компиляция проекта, то нужно делать спомощью cmake - https://stackoverflow.com/questions/2074144/generate-c-sharp-project-using-cmake. Если батник что-то запускает, то нужно использовать переменные окружения, вот это - https://docs.microsoft.com/ru-ru/dotnet/api/system.environment.getenvironmentvariable?view=net-6.0, или зафигачить настройки в ini файлы вместо bat файла см. - http://plssite.ru/csharp/csharp_ini_files_article.html
то нужно делать с помощью cmake
Это с какого века то? Или это от любителей программить в нотепаде?
Как сделать правильно, вопрос не ставится.
Но если интересно, то абсолютный путь свободно конвертируется в относительный, для данного случая.
А имена файлов можно генерить из батника
FOR %%A IN ("*.proto") DO ( echo generated for "%%A" ... )
Вообще-то в .Net есть класс... кажется SpecialFolders...
А как в конфиги (XML, JSON и т.д.) оттуда значения вставлять? В конфигах должны быть текстовые константы. Поэтому я и привёл вторую ссылку.
Хорошо что это на другом острове
Ну на вашем острове индусы далеют у себя локально работающую копию, а на остальное им плевать. Надо же вам потом себе занятость найти - править за ними и ругаться. ))
Да плевать на перечисления .Net. Речь же шла о батниках :) Какой там .Net? :D
Для батников - текстовые константы из другой ссылки.
Обычно ещё такое бывает, когда "какие два дня?! - должно быть сделано ещё вчера! вот тебе два часа на всё про всё, и то лишь потому, что я сегодня добрый".
С каждой версией .Net Framework поставляется компилятор, т.е. вам не надо устанавливать Visual Studio. Я писал тут - https://programming.mybb.ru/viewtopic.php?id=197 как компилировать если нет возможности посавить Visual Studio. Правда DotPeek не показывает Target Framework см. https://i.ibb.co/rpcybt9/result-exe-13-34-18-08-2021-min.j..., а когда запускаешь в XP даёт сбой и требует NET 4.x https://i.ibb.co/sPb4C3s/error-framework4-04-56-19-08-2021.... Вот там и нужен cmake, я могу на Visual Studio 2008 программировать, а откомпилиовать спомощью cmake для любого target-а.
-----
Студия, между тем, использует MsBuild...
Просто скармливаешь проект и все получается...