Как добавить сборочные ссылки для каждой конфигурации - PullRequest
13 голосов
/ 05 октября 2011

В настоящее время я хочу добавить код только для отладки в проект Windows Phone. Этот отладочный код будет перетаскивать некоторые ссылки на библиотеки классов отладки (вспомогательные помощники) и некоторые ссылки на клиентов служб WCF, и я бы очень хотел, чтобы на них не ссылались в сборке выпуска.

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

Я видел это в Connect - https://connect.microsoft.com/VisualStudio/feedback/details/106011/allow-adding-assembly-references-on-a-per-configuration-basis-debug-release - но он помечен как "отложенный"

Есть запрос на UserVoice Visual Studio, но он помечен как Closed как Won't Fix здесь: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi

Ответы [ 2 ]

13 голосов
/ 05 октября 2011

В обоих случаях используется MSBuild Condition, вы однажды настроили csproj и забыли об этом.

Первое: Использование Condition

  1. Создать новый проект DebugOnlyHelpers
  2. Ссылка на все отладочные помощники в этом проекте
  3. Указать условие в 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>
0 голосов
/ 05 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...