Visual Studio 2010 условные ссылки

У нас есть несколько продуктов с общими библиотеками. Эти библиотеки являются частью отдельного решения (поэтому они могут быть собраны TFS независимо друг от друга), но проблема заключается в разработке, нужно изменить общую библиотеку, скомпилировать ее в двоичную, скопировать в общую папку, скомпилировать решение продукта,

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

2 ответа

Решение

Вы должны быть в состоянии сделать это с помощью условных конструкций, отредактировав файл проекта напрямую (VS IDE не сделает этого за вас).

Например, вы можете сделать что-то подобное, используя элемент "Выбрать":

<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 имеет больше информации об использовании условных конструкций.

Возможно, вы захотите взглянуть на NuGet:

NuGet

NuGet - это бесплатная система управления пакетами, ориентированная на разработчиков с открытым исходным кодом, для платформы.NET, предназначенная для упрощения процесса включения сторонних библиотек в приложение.NET во время разработки.

(где вы были бы третьим лицом сами в этом случае)

Примечание. Это не даст вам условных ссылок, но упростит обновление общих компонентов.

Другие вопросы по тегам