在给出引用后,使用NANT编译C#项目时汇编引用错误

时间:2011-04-07 08:37:17

标签: reference assemblies nant csc

我的解决方案有多个项目,彼此有内部参考。项目名称DataAccess引用Objects项目。在我的NANT脚本中,我首先编译成功的Objects文件夹,然后当我尝试编译DataAccess项目时,我得到程序集引用错误,如下所示;

错误CS0246:类型或命名空间名称“CustomerProfile”找不到(?是否缺少使用指令或程序集引用)

CustomerProfile Class是Objects项目的一部分,我清楚地提到了NANT中的引用,如下所示;

<csc target="library" output="${OutputFolder}\bin\Objects.dll" debug="${debug}">
    <references />
    <sources basedir="${SourceCodeFolder}">
        <include name="Objects\\**\*.cs" />
    </sources>
</csc>
<csc target="library" output="${OutputFolder}\bin\DataAccess.dll" debug="${debug}" >
    <references>
        <lib>
            <include name="${OutputFolder}\bin" />
        </lib>
        <include name="Objects.dll" />
    </references>
    <sources basedir="${SourceCodeFolder}">
        <include name="DataAccess\\**\*.cs" />
    </sources>
</csc>  

奇怪的是,如果我从参考部分删除<include name="Objects.dll" />,我会得到以下错误;

错误CS0234:名称空间''中没有类型或命名空间名称'Objects'(你错过了程序集引用吗?)

这证实了汇编引用应该按照我在上面的代码片段中给出的方式给出。但是我不明白,如果组装参考是正确完成的,那么带有该组件的类('CustomerProfile')怎么没有被拿起

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在前同事的帮助下解决了问题。在参考部分中,应该提到到dll的完整路径。修复后的代码片段下方;

<csc target="library" output="${OutputFolder}\bin\DataAccess.dll" debug="${debug}" >
    <references>
        <include name="${OutputFolder}\bin\Objects.dll" />
    </references>
    <sources basedir="${SourceCodeFolder}">
        <include name="DataAccess\\**\*.cs" />
    </sources>
</csc>