Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Nombreux exemples VBCSCompiler.exe

Je viens de télécharger et installé récemment Visual Studio Professional 2015 /14.0.23107.0/. Pour la première fois j'ai ouvert notre décision /28 projets/ et rempli la décision Build -> Rebuild, Ma machine de développement est venue au contournement absolu. CPU a été maximisé par 100%, et l'assemblée n'a jamais été terminée - Même à travers > 10 minutes.

J'ai ouvert le chef de la tâche Windows Et remarqué: > 10 VBCSCompiler.exe Tâches lancées. En combinaison, ces tâches envoyées CPU > 90%.

Y a-t-il des idées pourquoi de nombreuses de ces tâches sont effectuées? Toute façon de l'arrêter d'arriver?

C'est la chose la plus proche que je puisse trouver quelqu'un d'autre en train de rencontrer le même problème:
https://github.com/dotnet/roslyn/issues/2790
Mettre à jour /8/7/

- Hansa passe, une excellente pensée. Mon manager m'a fourni cette version /14.0.23107.0/. Ceci est la version correcte pour "Sortie officielle"?? Je n'ai consciemment pas installé aucune des versions Visual Studio 2015 Pour chaque version. Je ne pense pas que certains bêta-bits sont allongés.

- Kyle Traberman, je ne connais pas très bien les variables d'environnement dans le contexte Visual Studio; Cependant, je suis naïvement lancé
set DisableRosyln=true

Dans la fenêtre de commande de commande VS /et MSBuild/. Il semble avoir aucune influence. VBCSCompiler.exe apparu immédiatement après le redémarrage VS2015.

J'ai restauré mon installation VS2015 et effectué un redémarrage. Cela n'a pas aidé.

Mise à jour 2 /8/7/

-Han passe, un disque très impressionnant !! Bien que cette fois, le problème ne se posait pas, j'ai regardé ce que vous avez décrit:

Quant aux modules chargés VBCSCompiler.exe, C'est ce que j'ai:

https://i.stack.imgur.com/rPd61.png
Fait intéressant, nos assemblées de noyau .NET Sont dans différentes versions. Vous êtes situé dans 4.06.79 j'en suis 4.06.81.

Mon "client side dlls" /Situé dans C:\Program Des dossiers /x86/\MSBuild\14.0\Bin\Microsoft.Build.Tasks.CodeAnalysis.dll/ Avoir la même version et la même timbre horaire que la vôtre:
https://i.stack.imgur.com/kcXmI.png
Étrangement assez quand je regarde le code dans ILSpy, Je vois quoi - C'est un peu différent possible, optimisation?


private static NamedPipeClientStream TryAllProcesses/string pipeName, int timeoutMs, CancellationToken cancellationToken, out string newPipeName/
{
string str = pipeName;
int num = 1;
while /File.Exists/string.Format/"\\\\.\\pipe\\{0}", pipeName///
{
NamedPipeClientStream result;
if //result = BuildClient.TryConnectToProcess/pipeName, timeoutMs, cancellationToken// != null/
{
newPipeName = pipeName;
return result;
}
pipeName = str + "." + num.ToString/CultureInfo.InvariantCulture/;
num++;
}
newPipeName = pipeName;
return null;
}


**Let Je serai de retour avec vous à un argument spécifique pipname, Instances transférées VBCSCompiler.exe. Je dois attendre jusqu'à ce que cela arrive.
Invité:

Gilbert

Confirmation de:

HMM, un reproche évident n'est pas, et personne d'autre ne se plaint de cela. Il n'y a rien d'inhabituel dans votre solution. Lier cpu à 100% et forcer le processus VBCSCompiler avaler ~1.5 GB Pas très difficile pour un grand projet, mais il est parfaitement propre lorsque je regarde la mienne.

Le premier scénario possible de l'échec, lorsque vous avez des betta bêta distantes situées autour, un problème très courant. Utilisez le débogueur à voir. Utilisation Debug > Attach to Process Et sélectionnez l'une des instances démarrées. Puis Debug > Break All et Debug > View > Modules. Faites attention aux numéros de version et aux balises temporaires, ils devraient ressembler à ceci:

https://i.stack.imgur.com/V2Mbx.png
Veuillez noter que j'ai délibérément caché certaines colonnes pour le garder lisible. Timbres de temps CST timezone.

Ceci est la partie serveur. Le côté client sur lequel l'erreur a été découverte est dans C:\Program Des dossiers /x86/\MSBuild\14.0\Bin\Microsoft.Build.Tasks.CodeAnalysis.dll. Regarde ses propriétés, mon - 85 192 octet et créé le dimanche, 21 juin 2015 de l'année, 7:06:54 PM, Numéro de version de fichier 1.0.0.50618. Vous pouvez voir le fichier à l'aide d'un décompiler, tel que Reflector ou ILSpy, Et aller à K. BuildClient.TryAllProcesses//. La chaîne correspondante avec la correction d'erreur:


for /int i = 1; File.Exists/string.Format/@"\\.\pipe\{0}", pipeName//; i++/


Il n'y avait pas de version buggy
\\.\pipe\

.

Veuillez noter que la vérification des erreurs est très insuffisante dans le code dans le code ci-dessus, File.Exists// Retour

false

pour de nombreuses raisons. Aussi la principale raison pour laquelle l'erreur n'a pas été détectée plus tôt. Cela inclut plusieurs dysfonctionnements possibles, notamment si votre machine est infectée par un logiciel malveillant typique dans une coque compressée, que les programmeurs installent volontairement. Le serveur et le code client sont connectés les uns aux autres via le canal nommé avec un nom spécial. Ce que vous pouvez voir dans le gestionnaire de tâches, onglet de processus. Utilisation View > Select Columns /Win8 Et ci-dessus: cliquez avec le bouton droit sur l'en-tête de la colonne/ Et vérifiez l'option "Command line":
https://i.stack.imgur.com/sqtgC.png
Faire attention à l'argument
-pipename

. Si l'appel File.Exists// Retour

false

, cette MSBuild Lance à nouveau VBCSCompiler.exe. Si vous voyez que toutes ces instances fonctionnent avec le même argument Piponame, le logiciel exécute le logiciel qui interfère avec l'utilisation normale du canal nommé. La première chose que vous penseriez alors - C'est la recherche d'une solution moins agressive pour protéger contre les programmes malveillants. Vous pouvez écrire un petit programme de test qui utilise l'espace de noms System.IO.Pipes, Pour obtenir le meilleur message à l'exclusion.

Hannah

Confirmation de:

Y a-t-il des idées pourquoi de nombreuses de ces tâches sont effectuées?

Roslyn Utilise le processus de compilation global qui enregistre votre code compilé en mémoire de réutilisation dans les compilations suivantes. Ainsi, la deuxième compilation sera plus rapide, mais comme vous l'avez déjà vue, il y a des frais généraux de mémoire.

Toute façon de l'arrêter d'arriver?

D'où la propriété du problème de compilation dans msbuild, qui éteint le compilateur général, et
https://github.com/dotnet/rosl ... 2-L64
Cela compte true .

Par conséquent, dans chaque projet, vous devrez ajouter cette propriété au fichier de projet. Ou dans Visual Studio 2015 Maintenant, il existe des projets communs dans lesquels vous pouvez ajouter cette propriété à un projet commun, puis permettre ce projet commun à tous les autres projets nécessitant ce paramètre.


<propertygroup>
<usesharedcompilation>false</usesharedcompilation>
</propertygroup>

Dominique

Confirmation de:

À propos de 22 novembre 2015 Ce problème m'a toujours arrivé dans la publication de la communauté Visual Studio 2015. Mon ordinateur portable a commencé à travailler comme un chauffage d'espace et toutes les copies VBCSCompiler Travaillé à pleine capacité.

La seule correction qui a fonctionné pour moi était de trouver le fichier VBCSCompiler.exe dans le catalogue /bin/roslyn Applications Web et

Changer les droits d'accès

à lui.

Vous avez besoin

interdire

résolution read & execute pour AppPool, Sous lequel votre application Web fonctionne.

https://i.stack.imgur.com/zFdZw.png

Christian

Confirmation de:

Selon Slaks, Vous pouvez éteindre roslyn /qui est ce qui est VBCSCompiler.exe/, Définition de la variable d'environnement
DisableRoslyn

dans
true

.

Voir
http://blog.slaks.net/2014-05- ... view/
Pour plus d'informations.

Veuillez noter que le lien ci-dessus est conçu pour prévisualiser, mais je ne peux pas imaginer que cela aurait beaucoup changé depuis et jusqu'à présent.

Christine

Confirmation de:

Vous pouvez également changer le paramètre "keep alive" Sur vbcscscCompiler pour le fermer immédiatement après l'exécution ...
Vous devez changer le fichier " VBCSCompiler.exe.config "/"C:\Program Files /x86/\MSBuild\14.0\Bin\VBCSCompiler.exe.config"/ et définir la valeur nécessaire en secondes /La valeur par défaut est 600/.

Babette

Confirmation de:

A également créé ce problème avec Visual Studio Enterprise 2015, Mettre à jour 1.
Le problème a été résolu en mettant à jour avant la mise à jour 2.

Babette

Confirmation de:

J'ai trouvé que changer l'identifiant sur 'NetworkService' Dans les réglages étendus du pool d'applications, ce problème résolu pour moi.

Pour répondre aux questions, connectez-vous ou registre