Question

Dans notre projet Visual Studio 2010 nous référençons - entre autres - le SmartAssembly.Attributes.dll et il est correctement copié dans le Bin/Debug ou Bin/Release dossier de nos machines de développement locales.Sur le serveur de build, cela est vrai pour toutes les autres références mais pas pour « SmartAssembly.Attributes.dll ».La construction réussit.

Que dois-je vérifier ?

Merci.

Était-ce utile?

La solution

Ouvrez votre .csproj fichier (ou .vbproj fichier), et recherchez la référence de l’assembly.Assurez-vous ensuite que le chemin de l'indice est toujours valide sur votre serveur de build.Parfois, VS2010 ajoute un chemin d'indication absolu, au lieu d'en utiliser un relatif au .csproj fichier lui-même, la lettre de lecteur peut donc être invalide sur une autre machine.

Par exemple, la référence peut ressembler à celle ci-dessous (j'ai composé tout le XML ci-dessous pour illustrer uniquement et il n'est PAS valide), et le chemin d'accès absolu peut être invalide dans le serveur de build (par ex.il n'y a pas de lettre de lecteur d là):

<Reference
Include="SmartAssembly.Attributes, Version=8.0.0.0, 
       Culture=neutral, PublicKeyToken=b03f1f7f1ad5da3a,
       processorArchitecture=x86"> 
  <SpecificVersion>False</SpecificVersion>
  <Private>true<Private>

  <!-- The HintPath below should exist and be valid in your build server -->
  <HintPath>d:\temp\SmartAssembly.Attributes.dll<HintPath>
</Reference>

Vous pouvez modifier le HintPath pour le rendre relatif au .csproj fichier et donc plus général.Par exemple:

  <HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>

Un autre problème peut être que <Private>true<Private> n'est pas là.Cet attribut mappé au CopyLocal propriété dans Visual Studio, donc si elle manque dans votre .csproj, la DLL ne sera pas copiée dans bin\Debug ou bin\Release par MSBuild.Voir http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top