Visual Studio 2010 условные ссылки - PullRequest
26 голосов
/ 29 июня 2011

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

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

Ответы [ 2 ]

39 голосов
/ 29 июня 2011

Вы должны быть в состоянии сделать это с условными конструкциями, отредактировав файл проекта напрямую (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 имеет дополнительную информацию об использовании условных конструкций .

4 голосов
/ 29 июня 2011

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

NuGet

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

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

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

...