Visual Studio 2005 создает выходные каталоги в нижнем регистре - PullRequest
3 голосов
/ 29 июля 2010

Я использую стандартную операционную среду, в которой используется Visual Studio 2005, работающая в Windows XP.

Источник решения управляется в Linux, но редактируется и компилируется с помощью Visual Studio на компьютере Windows через сеть через сеть.share.

Проблема, с которой я сталкиваюсь, заключается в том, что если я изменяю выходной каталог определенных проектов моего решения, Visual Studio автоматически создает каталоги, но они всегда в нижнем регистре.Выходные файлы имеют правильный регистр, только каталоги в нижнем регистре.

Это вызывает проблемы для инструментов управления исходным кодом, которые используются в Linux, которые требовательны к регистру.

Есть ли какие-либоспособ получить Visual Studio 2005 для создания каталогов в правильном случае?Я подумал об использовании сценария предварительной сборки, который вызывает mkdir, так как я нашел, что это работает, но кажется трудным вставлять сценарии предварительной сборки для каждого затронутого проекта.

Я также рассмотрелчто, возможно, именно сетевой уровень вызывает проблемы, но если я временно установлю выходные каталоги на локальный жесткий диск, произойдет то же самое.


Чтобы обновить, на самом деле здесь есть две переменные, $(TargetDir), который по сути является просто строчной версией $(OutDir) или $(OutputDir) в зависимости от стадии сборки.Кажется, я просто не могу понять, как это изменить или откуда оно взято.

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

Я исправил это, прибегнув к использованию mkdir на этапе предварительной сборки.Для каждого проекта, где важен регистр каталога, у меня есть следующий шаг предварительной сборки:

if not exist "$(OutputDir)" mkdir "$(OutputDir)"

Условное условие требуется, потому что mkdir возвращает ненулевое значение, если каталог уже существует, и этоостанавливает сборку.

1 голос
/ 29 июля 2010

Согласно этой статье , это ошибка, но есть обходной путь, указанный в статье Microsoft.Статья написана в 2005 году, поэтому я не уверен, что это все еще ошибка.

...