1

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

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

CustomerProfile 类是 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:命名空间“”中不存在类型或命名空间名称“对象”(您是否缺少程序集引用?)

这证实了程序集引用应该按照我在上面的代码片段中给出的方式给出。但是我不明白,如果程序集引用正确完成,那么带有该程序集的类('CustomerProfile')怎么没有被拾取

有人可以帮忙吗?

4

1 回答 1

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>
于 2011-04-07T09:35:42.557 回答