Сделать пути подсказок файла проекта VS2010 по умолчанию абсолютными? - PullRequest
2 голосов
/ 26 января 2012

Мы работаем с Visual Studio 2010, и у нас есть несколько проектов в решении. Всякий раз, когда мы добавляем ссылку на внешнюю DLL в проект, эта ссылка обычно добавляется как относительный путь, например:

<Reference Include="SomeReference">
<HintPath> ..\..\..\MyLibCatalog\SomeRef.dll</HintPath>
</Reference>

Если мы теперь покажем свойства для узла, представляющего указанную dll (из обозревателя решений), он будет отображаться, например:
C:\MyLibCatalog\SomeRef.dll

Однако в файле проекта (щелкнув правой кнопкой мыши узел проекта и выбрав «Редактировать файл проекта»), реальная ссылка все еще является относительной (что-то вроде ..\..\..\MyLibCatalog\SomeRef.dll).

Мы строим нашу систему и запускаем некоторые тесты во внешней системе, и для того, чтобы это работало должным образом, нам нужно, чтобы эти ссылки были абсолютными, а не относительными. На данный момент это означает редактирование файлов проекта вручную каждый раз, когда мы добавляем такую ​​ссылку. Помимо того, что это раздражение, это «исправление» легко забыть сделать.

Итак, мой вопрос: есть ли способ заставить VS2010 добавить HintPath как абсолютный путь с самого начала?

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Возможно, именно так вы используете относительные пути.Если вы поместите свои зависимости в папку «Зависимости» в своем исходном дереве (как мы), то они будут в вашей системе контроля версий, и вы сможете проверить свой код в любой системе и всегда быть уверенным, что двоичные файлы соответствуют коду.

Если вы используете абсолютные пути, у вас могут возникнуть проблемы с воспроизведением сборки, как узнать, на каких двоичных файлах она была построена / протестирована?

Я рекомендую использовать относительные пути.

0 голосов
/ 26 января 2012

Доступная здесь надстройка Solution Build Environment VS http://workspacewhiz.com/OtherAddins.html может быть решением для вас.Не пробовал с VS 2010, но исходные коды предоставлены, и я думаю, что они могут быть легко адаптированы к вашим потребностям.

Надстройка Solution Build Environment имеет специальный символ для расширения относительных путей в абсолютную форму.,Абсолютное расширение пути запускается вставкой восклицательного знака в начале строки.

RELPATH = c: \ Windows \ System32 ..! ABSPATH = $ (RELPATH) # c: \ Windows

Надстройка Solution Build Environment выполняет эти преобразования во время открытия решения и перед началом каждой сборки, соответственно сбрасывая переменные среды сборки.

...