Я бы сделал это:
В файле с именем "Common.props"
<Project ...>
<ItemGroup>
<Reference Include="Assembly1">
<HintPath>..\$(Configuration)\Path\Assembly1</HintPath>
</Reference>
<Reference Include="Assembly2">
<HintPath>..\$(Configuration)\Path\Assembly2</HintPath>
</Reference>
</ItemGroup>
</Project>
Вы можете поместить это в отдельный файл Common.props, как показано, и использовать импорт.элемент для «включения» его во все файлы вашего проекта, поэтому существует одна точка обслуживания, например:
<Project ...>
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''>Debug</Configuration>
...other properties
</PropertyGroup>
<Import Project="Common.props" />
...rest of your C# project file
</Project>
Что важно в размещении импорта, показанном выше, так это то, что он происходит послеопределение значения по умолчанию для $ (Configuration), в случае, если ни одно не указано, что делает правильное значение доступным при импорте.Конечно, вы можете переместить это объявление значения по умолчанию, а также многое другое, в файл Common.props.Если вы делаете это последовательно, ваши файлы проекта обычно становятся чуть более 4-х свойств (Project Guid, Пространство имен, Имя сборки, Тип проекта), импорта, списка файлов для компиляции и любых необычных ссылок на сборки или ссылок на проекты.Мои проекты обычно никогда не содержат никаких условных свойств, поскольку они почти всегда могут быть преобразованы в общий импорт.
Нет хорошего пользовательского интерфейса для этого, пользовательский интерфейс VS IDE очень ограничен, и яникогда не используйте его для изменения каких-либо свойств проекта, а вместо этого полагайтесь на пользовательские инструменты, как правило, настраиваемые задачи MSBuild для проверки файлов проекта на предмет их согласованности, и сценарии PowerShell для их изменения для общих изменений.
Excerptedиз книги MSBuild Trickery хитрости # 14 - 18
РЕДАКТИРОВАТЬ: добавлено описание импорта