Como me livrar do erro "Restrição da API unittestframework.dll já carregada"?
-
19-09-2019 - |
Pergunta
O erro a seguir aparece de vez em quando:
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamTest\Microsoft.TeamTest.targets(14,5): error : API restriction: The assembly 'file:///C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.
Como faço para me livrar dele?
Solução
- Edite o arquivo .csproj
- Remova a ProcessOrchitecture = MSIL no final da referência do UNITTESTFRAMEWORK.
Mudar:
<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
para:
<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
- Reinicie o Visual Studio
Outras dicas
Se você estiver recebendo esse erro quando ele tentar executar os testes no seu servidor de construção TFS, talvez seja necessário alterar o padrão que a definição de compilação do TFS usa para localizar conjuntos de testes. Esta postagem descreve o problema e a solução. Basicamente, o TFS está encontrando o mesmo conjunto de testes em duas pastas diferentes e tenta incluí -lo duas vezes. Para consertar isso:
- Open Team Explorer
- Expanda a árvore até ver as compilações para o seu projeto
- Selecione a construção em questão
- Clique com o botão direito do clique> Editar definição de construção
- Clique Processo na barra lateral à esquerda
- Expanda '2. Testes básicos '> automatizados
- Clique Editar
- Mudar o Especificação do arquivo de montagem de teste Para remover a correspondência de uma pasta no padrão. Por exemplo, mudança ****teste.dll ** para *teste*.dll
Ao remover a pasta do padrão de correspondência (ou seja, o ), ela incluirá apenas o conjunto do teste uma vez, mesmo que o encontrar em duas pastas diferentes.