Domanda

Nel nostro progetto Visual Studio 2010 facciamo riferimento - tra gli altri - al SmartAssembly.Attributes.dll ed è correttamente copiato nel file Bin/Debug O Bin/Release cartella delle nostre macchine di sviluppo locali.Sul server di compilazione questo vale per tutti gli altri riferimenti ma non per "SmartAssembly.Attributes.dll".La costruzione riesce.

Cosa devo controllare?

Grazie.

È stato utile?

Soluzione

Apri i tuoi .csproj file (o .vbproj file) e cercare il riferimento all'assembly.Quindi assicurati che il percorso del suggerimento sia ancora valido nel tuo server di build.A volte VS2010 aggiungerà un percorso di suggerimento assoluto, invece di usarne uno relativo a .csproj file stesso, quindi la lettera dell'unità potrebbe non essere valida in un'altra macchina.

Ad esempio, il riferimento potrebbe essere simile a quello seguente (ho creato tutto l'XML seguente solo a scopo illustrativo e NON è valido) e il percorso del suggerimento assoluto potrebbe non essere valido nel server di compilazione (ad es.non c'è nessuna lettera di unità 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>

Puoi modificare HintPath per renderlo relativo a .csproj file e quindi più generale.Per esempio:

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

Un altro problema potrebbe essere quello <Private>true<Private> non c'è.Questo attributo è mappato a CopyLocal proprietà in Visual Studio, quindi se manca nel tuo file .csproj, la DLL non verrà copiata bin\Debug O bin\Release di MSBuild.Vedere http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top