[VS2008] Как вычислить корневую директорию проекта?
От: Аноним  
Дата: 18.08.09 11:59
Оценка:
Есть у меня куча проектов для 2008 студии. Есть так же куча солюшенов которые включают в себя разные сабсеты этих проектов.
Солюшены и проекты лежат в совершенно различных директориях проекта.

Задача: установить директорию для выходных файлов например в <SourcesRoot>\<PlatformName>\<ConfigurationName>\bin

Вариант решения №1: Прописать в каждом проекте путь оносительно этого проекта (путь относительно солюшена не подходит, т.к. много солюшенов могут включать данный проект, а солюшены находятся в разных местах).
Преимущества: не нужно парится, а просто взять и везде прописать.
Недостатки: прописывать нужно в каждом проекте и для каждой конфигурации. Если нужно будет поменять — опять прийдется лезть во все проекты и менять (собственно задача и возникла из необходимости поменять и не факт, что не прийдется менять опять)

Вариант решения №2: Создать глобальный vsprops файл и в нем объявить эту выходную директорию.
Преимущества: директория указывается в одном месте и поменять в будущем ее будет легко (даже если для этого прийдется однократно перелопатить все проекты)
но есть ПРОБЛЕМА: студия не может вычислить путь к этому vsprops файлу, соответственно не может он него ничего отсчитывать. Максимум, что можно прописать в этом vsprops'е, что OutputDirectory находится на ..\..\..\$(PlatformName)\$(ConfigurationName)\bin но этот путь не будет валидным для всех проектов.

Вопрос: Как можно решить данную проблему? Заюзать преимущества vsprops'ов, но при этом корректно вычислять путь на корневую директорию дерева исходников, не зависимо от того где лежит тот или иной проект.
visual studio 2008
Re: [VS2008] Как вычислить корневую директорию проекта?
От: superlexx  
Дата: 18.08.09 13:02
Оценка:
Завести environment variable, например SourcesRoot. И использовать: $(SourcesRoot)\$(PlatformName)\$(ConfigurationName).
Re[2]: [VS2008] Как вычислить корневую директорию проекта?
От: Аноним  
Дата: 18.08.09 13:40
Оценка:
Здравствуйте, superlexx, Вы писали:

S>Завести environment variable, например SourcesRoot. И использовать: $(SourcesRoot)\$(PlatformName)\$(ConfigurationName).


Предложил заказчку, ответ такой: если есть какой то механизм выставления этих переменных прямо из студии — нет проблем. Т.е. это должно работать через Start Menu->Visual Studio->Open Solution или же просто даблклик в эксплорере по файлу солюшена. Никаких батников.
Re: [VS2008] Как вычислить корневую директорию проекта?
От: byleas  
Дата: 18.08.09 13:48
Оценка:
Что есть SourcesRoot? Тогда можно будет сказать, в какую сторону копать.

А вообще, subst на корневой каталог проекта и использовать абсолютные пути (буква "диска" одинакова для всех разработчиков).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.