referencias condicionales de visual studio 2010


Tenemos varios productos aquí que comparten algunas bibliotecas comunes. Estas bibliotecas son parte de una solución separada (por lo que pueden ser construidas por TFS de forma independiente), pero el problema es durante el desarrollo, uno tiene que modificar la biblioteca común, compilarla en binario, copiarla a la ubicación común, compilar la solución del producto.

Para evitar esto en realidad me pregunto si es posible tener referencias condicionales, por lo que para una configuración de depuración, las referenciaría como proyecto referencias, mientras que en la configuración de la versión serían referencias binarias.

Author: Cameron Peters, 2011-06-29

2 answers

Debería poder hacer esto con construcciones condicionales editando el archivo de proyecto directamente (VS IDE no lo hará por usted).

Por ejemplo, puede hacer algo como esto usando el elemento "Choose":

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <!-- ... --> 
    </PropertyGroup>
    <Choose>

        <When Condition=" '$(Configuration)'=='Debug' ">
            <ItemGroup>
                <ProjectReference Include="..\stuff\MyStuff.csproj">
                    <Project>{4c7bbe47-8d84-45d4-95f0-f640ba59563c}</Project>
                    <Name>MyStuff</Name>
                </ProjectReference>
            </ItemGroup>
        </When>

        <When Condition=" '$(Configuration)'=='Retail' ">
            <ItemGroup>
                <Reference Include="MyStuff.dll" />
            </ItemGroup>
        </When>

    </Choose>
    <!-- Rest of Project -->
</Project>

MSDN tiene más información sobre el uso de construcciones condicionales.

 39
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-29 15:31:13

Es posible que desee echar un vistazo a NuGet:

NuGet

NuGet es un sistema de gestión de paquetes centrado en desarrolladores de código abierto y gratuito para la plataforma.NET con la intención de simplificar el proceso de incorporación de bibliotecas de terceros en una aplicación. NET durante el desarrollo.

(donde usted mismo sería el tercero en este caso)

Nota: Esto no le daría referencias condicionales, pero facilitaría la actualización del componentes comunes.

 4
Author: Dirk Vollmar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-29 15:18:37