2011-10-05 14 views
13

Attualmente sto cercando di aggiungere un codice di debug solo a un progetto di windows phone. Questo codice di debug trascinerà alcuni riferimenti alla libreria di classi di debug (nunit helper) e alcuni riferimenti ai client del servizio WCF, e mi piacerebbe davvero non avere questi riferimenti nella build di rilascio.Come aggiungere riferimenti di assembly su base per configurazione

Qualcuno può suggerire un modo per aggiungere un riferimento di assieme al debug, ma non farlo apparire nel rilascio?

Ho visto questo su Connect - https://connect.microsoft.com/VisualStudio/feedback/details/106011/allow-adding-assembly-references-on-a-per-configuration-basis-debug-release - ma è contrassegnato come "rinviata"

C'è una richiesta su UserVoice di Visual Studio, ma è contrassegnato come Closed come Won't Fix qui: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi

+0

Ooh, bella domanda. È forse possibile con alcuni trucchi di MSBuild? –

+0

Penso che potrebbe essere necessario avere due file di progetto, sfortunatamente. – Ray

risposta

12

In entrambi i casi utilizzando MSBuild Condition, è possibile configurare una volta csproj e dimenticarsene.

Primo: Utilizzando Condition

  1. creare nuovi DebugOnlyHelpers progetto
  2. di riferimento tutti gli helper di debug-specifici in questo progetto
  3. specificare una condizione in csproj file in cui è necessario filtrare i riferimenti:

<ProjectReference 
      Include="DebugOnlyHelpers.csproj" 
      Condition=" '$(Configuration)' == 'DEBUG' " 

Secondo: Utilizzando Condition insieme Choose/When:

<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

Grazie per questo - +1 aggiunto - Sto testando e speriamo possa tornare a spuntare presto :) – Stuart

-5

Purtroppo non c'è modo di farlo adesso. Dovrai passare a eseguire il debug e rimuovere il riferimento, quindi aggiungerlo di nuovo quando torni al rilascio.

+0

Ovviamente c'è. –

+2

Non conoscevo la soluzione MSBuild, ma non c'è sicuramente un modo pulito per farlo in Visual Studio. – Polynomial

Problemi correlati