Использование NAnt для создания проектов .NET 2.0 - PullRequest
0 голосов
/ 11 декабря 2008

У меня был проект .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 больше не может его строить.
Заменить тег solution на

достаточно просто
<exec program="msbuild">
    <arg value="OAI\CC.OAI.sln" />
</exec>

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

1 Ответ

2 голосов
/ 13 декабря 2008

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

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

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

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

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

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

...