Использование NAnt для создания проектов .NET 2.0

У меня был проект .NET 1.1, который я построил в NAnt, используя следующий фрагмент:

<property name="Refs.dir" value="Refs" readonly="false"/>
<property name="OAIDLLs.dir" value="OAI\bin\ServerDebug"/>

<solution 
   solutionfile="OAI\CC.OAI.sln" 
   configuration="ServerDebug" 
   outputdir="${OAIDLLs.dir}">

   <assemblyfolders>
      <include name="${Refs.dir}"/>
   </assemblyfolders>
</solution>

Сейчас кто-то преобразовал проект в .NET 2.0, и NAnt больше не может его собрать.
Достаточно просто заменить тег решения на

<exec program="msbuild">
    <arg value="OAI\CC.OAI.sln" />
</exec>

но я не могу понять, как передать значение в assemblyfolders тега MSBuild. Для тех , кто не знает, assemblyfolders тег указует папку , в которой проект должен искать зависимые сборки.

11.12.2008 19:48:13
1 ОТВЕТ
РЕШЕНИЕ

Можно указать дополнительные свойства с помощью переключателя / p. Свойства, которые могут быть здесь интересны:

AdditionalLibPaths - указывает дополнительные папки, в которых компиляторы должны искать эталонные сборки.

AssemblySearchPaths - список местоположений для поиска во время разрешения эталонной сборки во время сборки. Порядок, в котором пути появляются в этом списке, имеет смысл, поскольку пути, перечисленные ранее, имеют приоритет над более поздними записями.

Чтобы указать дополнительные свойства с помощью msbuild с задачей exec:

<exec program="msbuild">
    <arg value="OAI\CC.OAI.sln" />
    <arg value="/p:AssemblySearchPaths=c:\path1" />
</exec>

В качестве стороны есть задача msbuild, которая предоставляется с NAntContrib .

2
13.12.2008 00:14:46