Подтвердить что ты не робот

Условные ссылки visual studio 2010

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

NuGet

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

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

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