2011-07-26 2 views
0

У меня есть единичные тестовые проекты, требующие некоторых внешних зависимостей. Эти зависимости представлены в двух вариантах: i386 (........ \ External \ EA \ i386 \ Core.dll) и amd64 (........ \ External \ EA \ amd64 \ Core.dll) ,Изменить ссылочный путь на основе цели построения

<ItemGroup> 
    <Reference Include="Core"> 
     <HintPath>..\..\..\..\External\EA\amd64\Core.dll</HintPath> 
    </Reference> 
    <Reference Include="Util"> 
     <HintPath>..\..\..\..\External\EA\amd64\Util.dll</HintPath> 
    </Reference> 

MSTest 32 бита, и я хочу, чтобы путь этих сборок быть ........ \ External \ EA ** i386 ** \ Core.dll. Другими словами, как я могу сообщить msbuild, чтобы выбрать правильную цель сборки.

Благодаря

+0

Посмотрите здесь: http://stackoverflow.com/questions/1997268/how-to-reference-different-version-of-dll-with-msbuild – Mrchief

ответ

0

Просто поместите условие на ссылки, или, как показано ниже, на ItemGroup, содержащего их,

<ItemGroup 
    Condition="'$(Platform)' == 'x64'"> 
    <Reference Include="Core"> 
     <HintPath>..\..\..\..\External\EA\amd64\Core.dll</HintPath> 
    </Reference> 
    <Reference Include="Util"> 
     <HintPath>..\..\..\..\External\EA\amd64\Util.dll</HintPath> 
    </Reference> 
</ItemGroup> 
<ItemGroup 
    Condition="'$(Platform)' == 'Win32'"> 
    <Reference Include="Core"> 
     <HintPath>..\..\..\..\External\EA\i386\Core.dll</HintPath> 
    </Reference> 
    <Reference Include="Util"> 
     <HintPath>..\..\..\..\External\EA\i386\Util.dll</HintPath> 
    </Reference> 
</ItemGroup> 

Вы должны точно первооткрывателем, какие значения для $ (Platform) ваш используется проект, который покажет простой анализ XML проектов.

Смежные вопросы