【问题标题】:Using NAnt to build .NET 2.0 projects使用 NAnt 构建 .NET 2.0 项目
【发布时间】:2008-12-11 19:48:13
【问题描述】:

我有一个 .NET 1.1 项目,我使用以下 sn-p 在 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>

但我不知道如何将 assemblyfolders 标记中的值传递给 msbuild。对于那些不知道的人,assemblyfolders 标签指定了项目应该在其中查找依赖程序集的文件夹。

【问题讨论】:

    标签: msbuild .net-2.0 nant


    【解决方案1】:

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

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

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

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

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

    作为一个侧面,msbuild 任务与NAntContrib 一起提供。

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 2010-11-15
      • 1970-01-01
      • 2012-08-07
      • 2010-10-06
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多