VS 2013 et MSBuild
J'ai récemment mis à niveau vers Visual Studio 2013, ce qui a provoqué le retour à des problèmes de dos lors de la construction de l'extérieur à l'aide de MSBuild (API ou Exécutable avec la commande de la ligne args)
Le numéro 1
Lors de la construction avec MSBuild il ne génère pas de Faux assemblées qui sont nécessaires pour nos Tests Unitaires, ce qui conduit à construire des échecs. Une simple construction dans visual studio résout ce temporairement, jusqu'à ce qu'un nouveau faux assemblée doit être généré.
Question #2
Lors de l'exécution de l'analyse de code ce se plaint avec les éléments suivants:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\CodeAnalysis\Microsoft.CodeAnalysis.targets(284,5):
error MSB4127: The "CodeAnalysis" task could not be instantiated from the assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\CodeAnalysis\.\FxCopTask.dll".
Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'Microsoft.Build.Tasks.CodeAnalysis' to type 'Microsoft.Build.Framework.ITask'.
Je n'ai que Visual Studio 2013 est installé sur ma machine, apparemment, l'installation d'une version plus ancienne pourrait résoudre le problème, mais ce n'est pas quelque chose que je peux faire. (VS 2013 est livré avec son propre MSBuild 12.0 qui se trouve dans un répertoire différent de la précédente MSBuild).
Je ne suis pas sûr pourquoi Visual Studio se comporte différemment à MSBuild, je suis tout simplement en pointant vers le fichier de solution comme si...
msbuild.exe "path\solution.sln" /property:Configuration=Debug
OriginalL'auteur Jack | 2014-05-06
Vous devez vous connecter pour publier un commentaire.
Ainsi, Visual Studio 2013 est livré avec une nouvelle version de MSBuild c'est à dire MSBuild 12.0. Une fois installé, il modifie le chemin d'accès de sorte que la nouvelle version est utilisée par défaut.
Ressemble à la solution compile avec visual studio 2012, vous pouvez spécifier le chemin d'accès complet msbuild.exe comme
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild "chemin d'accès\solution.la sln" /propriété:Configuration=Debug
ou un ensemble de visual studio 2012 les variables d'environnement en cours d'exécution suivantes avant d'exécuter msbuild
"%VS110COMNTOOLS%"\vsvars32.chauve-souris //VS2012 variables d'environnement
EDIT: à l'Aide de MSbuild 12.0 assemblées "C:\Program Files (x86)\MSBuild\12.0\Bin\" résout le problème avec le code d'Analyse de bug.
Ok, le dossier uniquement si vous avez installer Visual Studio 2012. Si vous appelez MSBuild par programmation, définir la ToolsVersion de la boîte à outils de la classe à 4.0 msdn.microsoft.com/en-us/library/...
J'ai essayé le réglage de la ToolsVersion à la fois à l'aide d'un argument de ligne de commande, et via la boîte à outils de l'API C#. Ni semble corriger le problème. J'ai aussi essayé de jouer avec les "VisualStudioVersion de la propriété" qui fixe un autre problème que j'avais.
Étrange. Cela aurait travaillé. Voir cemsdn.microsoft.com/en-us/library/bb383985.aspx" je n'ai pas essayé avec MSBuild API, mais avec la ligne de commande et il fonctionne très bien. Pouvez-vous me dire quel espace de noms que vous utilisez?
j'ai trouvé l'12.0 assemblées et c'est corrigé le problème avec le code d'Analyse bug "C:\Program Files (x86)\MSBuild\12.0\Bin\" Si vous ajoutez cette information dans votre réponse, je vais le marquer comme acceptée. Merci pour l'aide.
OriginalL'auteur Hamid Shahid