MSBuild ne trouve pas de référence
Je suis en train d'essayer de comprendre pourquoi MSBuild est pas en mesure de compiler un de notre unité de test, dll. Le problème est uniquement un problème survenant avec cette DLL et pas avec les autres projets de test.
C'est la sortie que je reçois de TeamCity lors de l'échec de la construction:
[10:38:55]: NAnt output:
[10:38:55]: [exec]
[10:38:55]: [exec]
[10:38:55]: [exec] "C:\Robinson\trunk\Projects\Robinson\Robinson.sln" (default target) (1) ->
[10:38:55]: [exec] "C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj" (default target) (19) ->
[10:38:55]: [exec] (CoreCompile target) ->
[10:38:55]: [exec] Modules\SecurityModuleTests.cs(10,30): error CS0234: The type or namespace name 'Modules' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] Modules\SecurityModuleTests.cs(197,39): error CS0246: The type or namespace name 'SecurityModule' could not be found (are you missing a using directive or an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] TranslateTests.cs(10,30): error CS0234: The type or namespace name 'Utils' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] IPETests.cs(8,30): error CS0234: The type or namespace name 'Ajax' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] Pages\BasePageTest.cs(6,30): error CS0234: The type or namespace name 'Utils' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] Pages\BasePageTest.cs(7,30): error CS0234: The type or namespace name 'Pages' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] ServiceAsmxTests.cs(9,30): error CS0234: The type or namespace name 'Ajax' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] ServiceAsmxTests.cs(10,30): error CS0234: The type or namespace name 'Utils' does not exist in the namespace 'TenForce.Execution.Web' (are you missing an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] Pages\BasePageTest.cs(16,17): error CS0246: The type or namespace name 'basepage' could not be found (are you missing a using directive or an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec] ServiceAsmxTests.cs(22,17): error CS0246: The type or namespace name 'Service' could not be found (are you missing a using directive or an assembly reference?) [C:\Robinson\trunk\Projects\Robinson\TenForceExecutionTests\TenForceExecutionTests.csproj]
[10:38:55]: [exec]
[10:38:55]: [exec] 2075 Warning(s)
[10:38:55]: [exec] 10 Error(s)
[10:38:55]: [exec]
[10:38:55]: [exec] Time Elapsed 00:01:40.06
Le projet TenForceExecutionTests est tout simplement une DLL qui contient plusieurs UnitTests de la MBunit Cadre. Ce projet a une référence à TenForceExecution qui est un projet d'application web et une autre référence à TenForce.L'exécution.Testqui est un autre fichier DLL contenant la logique pour les deux projets.
Lorsque nous compilons tout sur la machine de développement, il fonctionne sans problèmes et la compilation se passe sans erreurs. Sur l'agent de build toutefois, cela semble échouer...
INFO
- Framework Cible : .NET4
- Système d'exploitation : Windows XP 32 bits
- Windows 7 SDK Installé
MODIFIER
Fait un nettoyage de départ, et Visual Studio est en mesure de construire l'ensemble de la solution, msbuild, cependant ne peut pas.
EDIT 2
Vérifié les dépendances:
- Il y a un projet de dépendance entre les projets
- Il y a une solution dépendance au entre les projets
MODIFIER 3
Lorsque je supprime la référence à la webApplication projet, et de la remplacer par une référence à la DLL compilée de ce projet, les erreurs de disparaître et le projet se compile bien avec MSBuild.
EDITION 4
J'ai couru toute la construire à partir de msbuild par le biais d'un JOURNAL et a pris un coup d'oeil à la tâche spécifique pour compiler le projet qui donne des problèmes:
Task "Csc"
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\ASP.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\BUL\bin\Debug\BUL.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\BULTest\bin\Debug\BULTest.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\DAL\bin\Debug\DAL.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\Framework\bin\Debug\Framework.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\Gallio.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\Iesi.Collections.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\LanguageResource\bin\Debug\LanguageResource.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\log4net.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\MbUnit.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\NHibernate.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\PresentationBridge\bin\Debug\PresentationBridge.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\PresentationBridgeTest\bin\Debug\PresentationBridgeTest.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Configuration.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\System.Data.SQLite.DLL /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.Extensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.Services.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\TenForce.Execution.Test\bin\Debug\TenForce.Execution.Test.dll /reference:D:\Users\arne.de.herdt.TENFORCE2\Documents\RobinsonSource\Projects\Robinson\ThirdPartyComponents\WatiN.Core.dll /debug+ /debug:full /optimize- /out:obj\Debug\TenForceExecutionTests.dll /target:library Modules\SecurityModuleTests.cs TestRunSetup.cs TranslateTests.cs WebBaseTest.cs MetaTests.cs IPETests.cs Pages\BasePageTest.cs Properties\AssemblyInfo.cs ServiceAsmxTests.cs Settings.Designer.cs "D:\Users\arne.de.herdt.TENFORCE2\AppData\Local\Temp\6\.NETFramework,Version=v4.0.AssemblyAttributes.cs"
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.
De ce que je peux dire, le actuall WebApplication est PAS inclus dans la liste de référence.
source d'informationauteur coding-bunny
Vous devez vous connecter pour publier un commentaire.
Eu le même problème aujourd'hui, terminé que le projet ne pouvait pas être référencé avait une autre plate-forme spécifiée, x86 où les autres projets où Toute Plate-forme. Pour contourner ce problème, j'ai dû mettre le paramètre avec /p:=Plate-forme"des plates-formes Mixtes". Vous pouvez voir ce que VS utilise en allant dans le Gestionnaire de Configuration et en regardant la Active Plate-forme de Solution sélectionné en haut à droite.
Apparemment, cela semble être un problème connu dans MSBuild comme plus de gens ont des problèmes avec cela.
Je n'ai toujours pas reçu une réponse valide à partir de Microsoft à ce sujet, mais la discussion a continué ici : http://social.msdn.microsoft.com/Forums/en-CA/msbuild/thread/434abf1a-30db-4b13-8062-13755898dd71
Je sais que c'est un vieux post, mais je suis tombé sur ça aujourd'hui, donc je pensais m'offrir une rétroaction pour quelqu'un d'autre.
Que j'ai rencontré à quelques reprises et a trouvé que la modification de la Cible Cadre de .NET Framework 4 Client Profile juste .NET Framework 4 est le tour est joué.
Si vous effectuer une nouvelle commande pour un nouveau dossier sur votre machine fonctionne là-bas aussi?
Plupart du temps, ces problèmes se produisent parce que vous avez une référence à quelque chose qui est disponible localement, mais pas dans le contrôle de source. C'est une bonne façon de voir si tout ce qui est nécessaire pour la construction de votre projet est correctement référencé et sous contrôle de code source.
J'ai aussi eu le problème de la construction de la SV n'est pas toujours la même chose que simplement à l'aide de msbuild. Ce qui m'a aidé est alors de créer un journal de l'msbuild run (/fl switch) et vérifiez le journal et la trace vers le bas les étapes de génération et d'essayer de trouver la tâche difficile.
Je inspecter la dll propriétés manqué et je vois que le nom de l'assembly ont le même nom de l'espace de noms par défaut.
Puis-je changer le nom de l'assemblage à un autre et j'ai résolu mon problème.
J'ai aussi eu le même problème.
Je doute vraiment pourquoi MSBuild jette manquant assemblée de référence lorsque nous exécutez le fichier de solution à travers MSBuild et Jenkins, mais il fonctionne comme un charme dans Visual Studio, Après avoir combattu pendant deux jours, j'ai trouvé une conclusion pour cette.
J'ai écrit un script batch pour exécuter le fichier de Solution d'abord par le biais de Visual Studio, puis a couru le fichier de Solution. Il ne fonctionne pas bien.
Tout ce que vous devez faire est d'appeler le script de commandes et exécutez ensuite le MSBuild/Jenkins.
Script Batch :
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
devenv "C:\Program Files (x86)\Jenkins\workspace\TFS\Produit\Soluttion.la sln" /Reconstruction
devenv: Pour exécuter Visual Studio en ligne de Commande.
Remarque: vous avez vraiment besoin de Visual Studio, si votre exécution MSBuild/Jenkins dans le serveur.
Moi un Mail pour toute question au sujet de cette..........
J'ai rencontré ce message d'erreur quand j'ai construit une solution avec MSBuild en mode Release, même si le mode de Débogage a bien fonctionné et les deux travaillé dans Visual Studio. Mis dans la solution des paramètres du projet n'a pas été configuré pour être construit pour la Libération et des plates-formes Mixtes" ou "Release|any CPU".