2017-04-23 1 views
8

Nous utilisons devenv pour construire notre code source sur la ligne de commande, comme ceci:Comment désactiver VS intellisense quand devenv est invoqué pour construire sur une ligne de commande?

devenv xyz.sln /build 

je remarquai que même si aucune interface graphique est ouvert, IntelliSense est encore chargé. Les messages comme celui-ci me font croire que c'est le cas:

[Failure] Could not find file 'C:\xyz\Services\Platform\DataProcessor\WebServiceClient.g.cs'. 

Ce fichier généré, donc, bien sûr, il n'existe pas au début. Quoi qu'il en soit, des messages comme celui-ci indiquent qu'intellisense fonctionne et donc que les ressources sont gaspillées. Est-ce que je peux le désactiver quand devenv construit le code sur la ligne de commande, mais l'a-t-il activé autrement?

Précision

La construction ne manque pas! C'est parce qu'il n'y a aucun problème de la perspective de construction - les fichiers source de dépendance sont générés avant les projets qui en dépendent réellement. Du point de vue de la construction pure, tout va bien.

Cette erreur est générée par Intellisense, qui attend avec impatience et remarque que certains projets font référence à des fichiers non existants. Ceci n'est absolument pas nécessaire quand le devenv est utilisé pour construire sur la ligne de commande, au contraire, il fait du bruit sur la sortie de la console.

+0

Comment générez-vous ce fichier? –

+0

Un exe est en cours d'exécution à partir de l'étape csproj BeforeBuild. Et il y a un autre projet qui fait déjà référence à ce fichier. – mark

+0

Si vous construisez directement cette solution dans VS, ce message d'échec apparaît-il ou non? –

Répondre

-1

Je ne pense pas que cela soit lié à l'indexation (IntelliSense).

Cette erreur est due au fait que les fichiers de solution ou de projet contiennent une référence à ce fichier spécifique. Si le fichier est absent du système de fichiers au moment de la construction, vous obtiendrez cette erreur.

Je recommanderais d'examiner l'ordre de construction dans votre projet. Ce article décrit comment s'assurer que votre projet est construit dans l'ordre attendu. En particulier, essayez d'abord d'avoir le projet qui génère ces fichiers source, puis le reste des projets qui en ont besoin.

+0

Mais la question est "comment désactiver VS intellisense quand devenv est invoqué pour construire sur une ligne de commande?" Et il est légitime, indépendamment de ce qui a causé OP pour le demander. –

+0

@samhocevar: Ce serait le titre. Mais le problème décrit par OP est qu'il obtient l'erreur suivante: [Echec] Impossible de trouver le fichier 'C: \ xyz \ Services \ Platform \ DataProcessor \ WebServiceClient.g.cs'. Il attribue ce problème à IntelliSense, mais ne semble pas être le cas. Si vous lisez attentivement son message ce dont il a besoin est de passer cette erreur pour construire le projet. – arboreal84

+0

Le message d'erreur * est * émis par IntelliSense. Les fichiers générés peuvent être créés pendant la construction, mais IntelliSense a tendance à démarrer très tôt, il n'est donc pas toujours possible de simplement changer l'ordre de construction. J'ai mis une prime sur cette question parce que moi aussi je voudrais désactiver IntelliSense lors de l'exécution de devenv à partir de la ligne de commande. –