предупреждение MSB8012 при изменении настройки выходного файла

Я запустил новый проект C++ в Visual Studio 2010 и столкнулся с предупреждением MSB8012 после того, как изменил параметр «Выходной файл» в разделе «Свойства проекта» -> «Свойства конфигурации» -> «Компоновщик» -> «Общие». По умолчанию это $(OutDir)$(TargetName)$(TargetExt)), но мне нужно изменить его на $(OutDir)Bin\$(ConfigurationName)\$(TargetName)$(TargetExt).

Если я это сделаю, я столкнусь с упомянутым предупреждением. У меня никогда не было этой проблемы в Visual Studio 2005 и 2008.

Сообщение об ошибке говорит мне, что мой TargetPath не соответствует значению свойства OutputFile компоновщика. Разрешенная командная строка выглядит именно так, как я хочу, но в значении TargetPath отсутствует часть Bin\$(ConfigurationName). Где именно устанавливается/собирается значение свойства TargetPath?

Сообщение содержит To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). Означает ли это, что свойство OutputFile может иметь только значение по умолчанию?

Как я могу устранить это предупреждение, не сбрасывая свойство «Выходной файл» или используя какое-то глупое обходное решение?


person Hatch    schedule 08.11.2010    source источник


Ответы (1)


Вы можете исправить это с помощью Свойства конфигурации + Общие, Настройка выходного каталога. Измените его на

$(SolutionDir)Bin\$(ConfigurationName)

И оставьте настройку компоновщика как есть. Это изменение параметра изменяет значение $(OutDir) и поддерживает работу MSBuild.

person Hans Passant    schedule 08.11.2010
comment
Хотя это не совсем то, что я хотел услышать, похоже, это правильный ответ. Я намеренно хотел, чтобы эти два пути отличались друг от друга, очень похоже на то, что outdir-and-link-outputfile" rel="nofollow noreferrer">этот пользователь описывает. Это больше всего раздражает, так как в предыдущих версиях Visual Studio это работало без каких-либо затруднений. - person Hatch; 09.11.2010