我有一个.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>
但我无法弄清楚如何将 assemblyfolders 标记中的值传递给msbuild。对于那些不知道的人, assemblyfolders 标记指定项目应该查找依赖程序集的文件夹。
答案 0 :(得分:2)
可以使用/ p开关指定其他属性。这里可能感兴趣的属性是:
AdditionalLibPaths - 指定编译器应查找参考程序集的其他文件夹。
AssemblySearchPaths - 在构建时参考程序集解析期间要搜索的位置列表。路径在此列表中的显示顺序是有意义的,因为前面列出的路径优先于后面的条目。
使用带有exec任务的msbuild指定其他属性:
<exec program="msbuild">
<arg value="OAI\CC.OAI.sln" />
<arg value="/p:AssemblySearchPaths=c:\path1" />
</exec>
作为一方,msbuild提供了NAntContrib任务。