Pergunta

Em nosso projeto do Visual Studio 2010 fazemos referência - entre outros - ao SmartAssembly.Attributes.dll e é copiado corretamente para o Bin/Debug ou Bin/Release pasta de nossas máquinas de desenvolvimento locais.No servidor de compilação, isso é verdadeiro para todas as outras referências, mas não para 'SmartAssembly.Attributes.dll'.A construção foi bem-sucedida.

O que devo verificar?

Obrigado.

Foi útil?

Solução

Abre o teu .csproj arquivo (ou .vbproj arquivo) e procure a referência do assembly.Em seguida, certifique-se de que o caminho da dica ainda seja válido em seu servidor de compilação.Às vezes, o VS2010 adiciona um caminho de dica absoluto, em vez de usar um relativo ao .csproj próprio arquivo, portanto a letra da unidade pode ser inválida em outra máquina.

Por exemplo, a referência pode ser semelhante à abaixo (criei todo o XML abaixo apenas para ilustrar e NÃO é válido), e o caminho da dica absoluta pode ser inválido no servidor de compilação (por exemplo,não há letra de unidade 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>

Você pode alterar o HintPath para torná-lo relativo ao .csproj arquivo e, portanto, mais geral.Por exemplo:

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

Outro problema pode ser que <Private>true<Private> não está lá.Este atributo mapeado para o CopyLocal propriedade no Visual Studio, portanto, se estiver faltando no seu .csproj, a DLL não será copiada para bin\Debug ou bin\Release pelo MSBuild.Ver http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top