Как добавить Assembly-References для каждой конфигурации
В настоящее время я хочу добавить код отладки только в проект телефона Windows. Этот код отладки будет перетаскиваться в некоторые ссылки библиотеки классов отладки (помощники nunit) и некоторые ссылки клиентов службы WCF, и мне бы очень хотелось, чтобы они не упоминались в сборке релизов.
Может ли кто-нибудь предложить любой способ, с помощью которого я могу добавить Assembly-Reference для отладки, но не отображаться в выпуске?
Я видел это на Connect - https://connect.microsoft.com/VisualStudio/feedback/details/106011/allow-adding-assembly-references-on-a-per-configuration-basis-debug-release - но он помечен как "отложен"
Там есть запрос на Visual Studio UserVoice, но он помечен как Closed
как Won't Fix
здесь: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi
Ответы
Ответ 1
Оба случая, использующие MSBuild Condition
, вы однажды настроили csproj
и забыли об этом.
Сначала: Использование Condition
- Создать новый проект DebugOnlyHelpers
- Ссылка на все помощники для отладки в этом проекте
- Укажите условие в файле
csproj
, где необходимо отфильтровать ссылки:
<ProjectReference
Include="DebugOnlyHelpers.csproj"
Condition=" '$(Configuration)' == 'DEBUG' "
Второе: Используя Condition
вместе с Выберите/Когда:
<Choose>
<When Condition=" '$(Configuration)'=='DEBUG' ">
<ItemGroup>
<Reference Include="NUnit.dll" />
<Reference Include="Standard.dll" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Standard.dll" />
</ItemGroup>
</Otherwise>
</Choose>
Ответ 2
К сожалению, сейчас нет способа сделать это. Вам придется переключиться на отладку и удалить ссылку, а затем добавить ее обратно, когда вы вернетесь в выпуск.