2011-10-05 3 views
13

Actualmente estoy buscando agregar algún código de depuración solo a un proyecto de Windows Phone. Este código de depuración arrastrará algunas referencias de biblioteca de clase de depuración (nunit helpers) y algunas referencias de cliente de servicio WCF, y realmente me gustaría que no se haga referencia a ellas en la compilación de lanzamiento.Cómo agregar las referencias ensambladas por configuración por

¿Alguien puede sugerir alguna forma de que pueda agregar una referencia de ensamblado para depurar, pero no hacer que aparezca en el lanzamiento?

He visto esto en Conectar - https://connect.microsoft.com/VisualStudio/feedback/details/106011/allow-adding-assembly-references-on-a-per-configuration-basis-debug-release - pero está marcado como "aplazado"

Hay una solicitud en UserVoice de Visual Studio, pero se marca como Closed como Won't Fix aquí: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi

+0

Ooh, buena pregunta. ¿Es posible con algunos trucos de MSBuild, tal vez? –

+0

Creo que es posible que necesite tener dos archivos de proyecto, desafortunadamente. – Ray

Respuesta

12

En ambos casos usando MSBuild Condition, una vez configuró csproj y se olvidó de esto.

Primero: Usando Condition

  1. crear nuevas DebugOnlyHelpers proyecto
  2. Referencia todos los ayudantes de depuración específicos en este proyecto
  3. especificar una condición en csproj archivo donde tenga que filtrar referencias:

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

Segundo: Usando Condition junto con 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

Gracias por esto - +1 agregado - Estoy probando y con suerte volveré a marcarlo pronto :) – Stuart

-5

Desafortunadamente no hay forma de hacer esto ahora mismo. Deberá cambiar para depurar y eliminar la referencia, y luego volver a agregarla cuando regrese al lanzamiento.

+0

Por supuesto que hay. –

+2

No sabía de la solución MSBuild, pero ciertamente no hay una manera clara de hacerlo en Visual Studio. – Polynomial

Cuestiones relacionadas