Подтвердить что ты не робот

Как добавить 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

4b9b3361

Ответ 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

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