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标签指定了项目应该在其中查找依赖程序集的文件夹。

4

1 回答 1

2

可以使用 /p 开关指定其他属性。这里可能感兴趣的属性是:

AdditionalLibPaths - 指定编译器应在其中查找参考程序集的其他文件夹。

AssemblySearchPaths - 在构建时参考程序集解析期间要搜索的位置列表。路径在此列表中出现的顺序是有意义的,因为前面列出的路径优先于后面的条目。

要使用带有 exec 任务的 msbuild 指定其他属性:

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

另一方面, NAntContrib提供了一个msbuild任务。

于 2008-12-13T00:14:46.637 回答