6
votes

L'installation de Visual Studio 2015 modifierait-elle le compilateur utilisé par VS 2013?

Quel compilateur C # utilise Visual Studio 2013? Si je devais installer Visual Studio 2015 avec son nouveau compilateur Roslyn, cela affecterait-il mon installation Visual Studio 2013 ?

Je demande parce que nous avons des tests connus pour échouer lorsque notre code est construit avec Visual Studio 2015. Certains chiffres diffèrent à huit chiffres significatifs. La solution lorsque le Studio Visual Studio 2015 sera probablement d'augmenter les tolérances des tests, mais j'aimerais comprendre comment Visual Studio décide du compilateur à utiliser.

Visual Studio 2013 peut-il être explicitement défini pour utiliser l'ancien compilateur? Ou un script Msbuild?


6 commentaires

S'attendre à ce que le type float doit avoir plus de 7 chiffres significatifs est toujours un bogue dans votre code, pas le compilateur. Les valeurs de chiffres de bruit aléatoires au-delà du 7ème chiffre sont affectées par la gigue utilisée, ce qui a changé.


N'installez pas VS2015 sur une machine de production. C'est un aperçu sans supporté .


Tout sauf d'accord avec @danielmann. Je ne tenterais pas de résoudre ce problème avant que VS2015 soit un peu plus mature.


Comment se fait-il qu'il y a un vote de clôture basé sur ce thread «principalement d'opinion basé»?!? O.o


J'ai installé 2015 et 2013. Pour autant que je sache, 2015 ne change rien pour une installation de 2013.


Encore une fois, je n'essaie pas de "réparer" quoi que ce soit, j'ai demandé une explication sur la façon dont Visual Studio fonctionne afin de comprendre ce qui va se passer - si quelque chose, lorsque Visual Studio 2015 est publié. Pour le moment, tous nos machines de développeurs et de tests donnent des résultats identiques (les chiffres sont en double). C'est gentil (tant que ça dure). Certainement des différences pourraient être gérées avec des tolérances, comme je l'ai suggéré dans la question!


5 Réponses :


2
votes

Installation de VS2015 remplacera le temps d'exécution .NET et la mise à jour à 4.5.3 - Je ne sais pas si le compilateur JIT est remplacé, mais c'est possible.

Dans ce cas, vous pouvez observer différents résultats de test, quel que soit le compilateur C # utilisé.

Quoi qu'il en soit, l'installation de 4.5.3 d'exécution est un changement majeur à la machine et ne peut pas vivre côte à côte avec des roulements non prévisualisés, donc je ne le recommanderais pas sur une machine de production . Par exemple, l'API de débogueur de Microsoft, CLRMD (Microsoft.Diagnostics.Runtime Nuget Package) ne peut plus se connecter à un 4.5.3 Runtime - c'est a été rapporté ici par exemple.

Je supposerais qu'il y ait plus de changements de rupture à découvrir.


1 commentaires

Cela ressemble donc à des risques liés à l'exécution de ces personnes à l'échelle côte à côte, si cela met à niveau le temps d'exécution .NET à 4.5.3. Y a-t-il d'autres problèmes connus?



10
votes

Quel compilateur C # utilise Visual Studio 2013? Si je devais installer Visual Studio 2015 avec son nouveau compilateur Roslyn, cela affecterait-cela mon Installation Visual Studio 2013?

Installation de Visual Studio 2015 Aperçu n'affectera pas votre installation Visual Studio 2013, ainsi que les anciens compilateurs C # et VB qui vivent dans le dossier d'installation .NET Framework dans le répertoire Windows ne sont pas remplacés. Au lieu de cela, Visual Studio 2015 Aperçu utilise et comprend un aperçu de la version suivante des outils Microsoft Build, Msbuild 14.0, qui est installé dans le dossier de fichiers de programme 32 bits sous \ Msbuild \ 14.0 et contient les nouvelles compilateurs de Roslyn et les bibliothèques d'analyse de code .

pour C ++, rien de substantiel n'a changé et que les compilateurs vivent dans le sous-dossier \ VC \ bin de l'installation particulière Visual Studio, ils ne se affecteront pas.

Visual Studio 2013 peut-il être explicitement défini pour utiliser l'ancien compilateur? Ou un script Msbuild?

Ce n'est pas nécessaire car Visual Studio 2013 ne peut utiliser que les anciens compilateurs, sauf si vous avez installé et activé l'extension CTP de ROSLYN qui est devenue obsolète.


0 commentaires

8
votes

non. Installation de Visual Studio 2015 ne change pas le compilateur utilisé par VS 2013. À la ligne de commande, vous pouvez choisir entre en exécutant le msbuild.exe

Les défaillances de test étaient dues à .NET Framework 4.6, plutôt qu'un changement de compilateur.

Correction du problème en définissant l'environnement 'Utiliser legacy Jit' Comply_USELEGACACYJIT VARIABLE PER https://github.com/microsoft/dotnet/blob/master/docs/testing-with-ryujit.md


0 commentaires

2
votes

Peut-être que vs 2015 n'affecte pas le compilateur utilisé par VS 2013, mais cela affecte définitivement Roslyn (si vous installez VS 2015, votre ancien code PRE-VS2015 ROSLYN pourrait arrêter de travailler). Pour moi, cela a introduit des problèmes avec la compilation de types anonymes dans les scripts Confus.


0 commentaires

0
votes

J'ai fait face à la question en installant VS Professional 2015 Soad VS Professional 2012. Mon projet MVC 3 créé dans VS 2012 / .NET 4.0 Je ne suis pas capable d'ouvrir maintenant. Je suis capable de l'ouvrir dans vs 2015 / .NET 4.0 seulement.


1 commentaires

Êtes-vous sûr de ne pas mettre à niveau la solution à 2015, ou ajoutez des fonctionnalités de 2015 uniquement à vos projets? Nous utilisons 2010, 2013 et 2015 pour ouvrir la même solution sans aucun problème. Nous nous assurons simplement de ne rien faire qui obligerait le comportement 2015 (ou 2013).