2010-06-09 8 views
2

Mise en place TeamCity 5.0.1 pour exécuter des tests unitaires pour la première fois, nous voyons cette erreur:La version du fichier Moq et la non-concordance de la version d'assembly causent des problèmes dans TeamCity?

Test(s) failed. System.IO.FileNotFoundException : Could not load file or assembly 'Moq, Version=3.1.416.3, Culture=neutral, PublicKeyToken=69f491c39445e920' or one of its dependencies. The system cannot find the file specified.

Nous utilisons 3.1.416.3 version de Moq, la dll dont dispose un fichier Version de 3.1.0.0

la référence dans notre fichier de projet ressemble à ceci:

 
<Reference Include="Moq, Version=3.1.416.3, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\..\lib\binaries\thirdparty\Moq.dll</HintPath> 
</Reference> 

Nous sommes en mesure d'exécuter nos tests unitaires dans Stoudion visuelle avec ReSharper, et aussi de l'interface graphique nunit (à la fois sur nos machines de développement et le serveur de construction en question).

Que se passe-t-il ici?

+0

Nous rencontrons également ce même problème. Avez-vous déjà compris ce qui le causait de votre côté? – joshuapoehls

Répondre

2

Pas de réponse de 100%, mais une solution de contournement:

Vous pouvez supprimer la version numéro explicite dans la version fichier. Puisque c'est de toute façon fourni par votre projet et seulement utilisé pour les tests. Remplacez simplement la partie 'Moq, Version = 3.1.416.3, ...' par 'Moq'. Ensuite, la version du hint-path est utilisée.

4

Cela peut être dû à des dépendances NuGet. Si vous Reconstruire tout de votre projet, vous pouvez voir un avertissement anodin lorsque votre projet de test unitaire est compilé, comme ceci:

Consider app.config remapping of assembly "Moq, Culture=neutral, PublicKeyToken=69f491c39445e920" from Version "4.0.10827.0" [] to Version "4.1.1309.1617" [C:\XXX\packages\Moq.4.1.1309.1617\lib\net40\Moq.dll] to solve conflict and get rid of warning. 

Cet avertissement ne peut pas arrêter les tests unitaires en cours d'exécution sur votre machine locale, mais ils peuvent bien arrêter TeamCity de les exécuter.

Vous pouvez vous débarrasser de l'avertissement et demander à TeamCity de lancer vos tests unitaires en ajoutant quelque chose comme ceci au fichier App.config pour votre ensemble de test unitaire;

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.10827.0" newVersion="4.1.1309.1617" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

... en utilisant les numéros de version appropriés pour lesquels vous avez des erreurs et la version installée.

Questions connexes