2011-04-07 3 views
1

Ma solution a plusieurs projets avec référence interne les uns aux autres. Nom du projet Références DataAccess Projet d'objets. Dans mon script NANT, je compile d'abord le dossier Objects qui réussit, puis quand j'essaie de compiler le projet DataAccess, j'obtiens l'erreur de référence d'assemblage qui est comme ci-dessous;Assembler erreur de référence lors de la compilation du projet C# en utilisant NANT même après avoir donné la référence

erreur CS0246: Impossible de trouver le nom du type ou espace de noms « CustomerProfile » (vous manque une directive à l'aide ou une référence d'assemblage?)

CustomerProfile classe fait partie du projet d'objets et je mentionne clairement la référence dans le NANT comme indiqué ci-dessous;

<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> 

chose étrange est si je retire la <include name="Objects.dll" /> de la section de référence, je reçois l'erreur ci-dessous;

erreur CS0234: dans l'espace « » (? Vous manque une référence d'assemblage) n'existe pas le type ou le nom espace de noms « objets »

Ce qui confirme que les références de montage devraient b étant donné la façon dont j'ai donné dans l'extrait de code ci-dessus. Mais je ne comprends pas que si le refernce de l'assembly est fait correctement alors comment se fait-il que la classe ('CustomerProfile') avec cet assembly ne soit pas ramassée

Quelqu'un peut-il vous aider?

Répondre

0

J'ai résolu le problème avec l'aide de mon ex-collègue. Dans la section des références, le chemin complet vers la DLL doit être mentionné. Ci-dessous l'extrait de code après le correctif;

<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> 
Questions connexes