2013-05-13 3 views
0

J'ai plusieurs projets qui référencent des assemblages dans C:\Program Files (x86). J'ai installé les assemblys sur mon contrôleur de construction de la même manière et les fichiers sont dans le C:\, cependant chaque fois que je déclenche une construction mon contrôleur ne trouve pas les assemblages.Références de disque non vues dans le contrôleur de construction

<Reference Include="GrapeCity.ActiveReports.Diagnostics.v7, Version=7.0.6163.0, Culture=neutral, PublicKeyToken=..., processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
</Reference> 

La référence dans le projet ressemble à ce qui précède, qui, à mon avis, je peux comprendre pourquoi le contrôleur de construction ne peut pas trouver la référence car il n'y a pas de chemins de soupçon.

J'ai essayé de changer Copy Local à true et Specific Version-false, cela aussi ne fonctionnait pas. Que dois-je modifier dans mon projet, construire la définition de contrôleur ou de construction pour que le serveur ait la portée des assemblages?

+0

Votre agent de build est-il sur la même machine que le contrôleur de build? Sinon, vous devez installer les références sur l'agent de construction. Comment les avez-vous installés? MSBuild les recherche dans le GAC et si vous copiez simplement les fichiers sur le serveur, ils ne peuvent pas les trouver, tant qu'ils ne sont pas dans le GAC. – MikeR

+0

Je suis d'accord avec LukeH ... Cela ressemble à "Je regarde dans le GAC". – granadaCoder

+0

@granadaCoder excuse mon ignorance, qu'est-ce que 'GAC'? – LukeHennerley

Répondre

1

Donc, une façon de résoudre ce problème est de ne pas faire référence à partir du GAC.

<Reference Include="GrapeCity.ActiveReports.Diagnostics.v7, Version=7.0.6163.0, Culture=neutral, PublicKeyToken=..., processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
</Reference> 
  1. Trouver cette GrapeCity.ActiveReports.Diagnostics.v7.dll.
  2. Lorsque votre fichier .sln réside, créez un dossier. \ ThirdPartyReferences \.
  3. Copiez GrapeCity.ActiveReports.Diagnostics.v7.dll dans ce répertoire.
  4. Supprimer la référence "gac".
  5. Ajoutez le plus local. \ ThirdPartyReferences \ reference.
  6. Vérifiez le dossier. \ ThirdPartyReferences \ dans le contrôle de code source.
  7. Assurez-vous que. \ ThirdPartyReferences \ est "déroulant" depuis le contrôle de source pendant la construction.

OU

Get "GrapeCity.ActiveReports" installé sur l'accumulation serveur à l'aide de leurs outils d'installation. Ce qui devrait entrer correctement dans le GAC sur le serveur de construction.

Je choisis habituellement la première option (ma première option ci-dessus). J'aime avoir une très bonne idée de ce que mes dépendances ThirdParty sont pour ma construction.

+0

J'ai un espace de travail de développement qui fait référence aux 'C: \ Program Files', etc. J'ai également installé le logiciel tiers approprié sur mon contrôleur de build, c'est le même emplacement ... J'ai vérifié les logs, et cela a résolu le chemin mais le nom de l'assembly n'existait pas supposément. faire ce que vous avez suggéré avec votre 1ère option – LukeHennerley

+0

C'est pourquoi je préfère la première option, parfois les chemins de référence du GAC ne font que vous rendre fou. – granadaCoder

Questions connexes