MSBuild erreur CS2001 fichier source n'a pas pu être trouvé
Je suis en train de faire une ligne de commande appuyer sur l'un de mes projets à l'aide de MSbuild. La solution et le projet s'inscrit bien dans VS2012, mais quand j'execute un fichier batch contenant
msbuild.exe project.csproj
Il échoue. Il ya tellement de nombreuses erreurs que je ne peux même pas défilement vers le passé. Ils sont tous de la même erreur, pour les différents fichiers, le tout à partir d'autres projets dans la solution:
CSC : error CS2001: Source file 'folder\filename.cs' cound not be found [c:\folder\project.csproj]
J'ai trouvé d'autres questions à parler de nom de fichier longueurs. J'ai essayé de l'enlever de chaque couche dans le chemin que je pouvais, mais en vain. Je trouve bizarre que le chemin du fichier source n'est pas relatif, même si les fichiers ne sont pas trouvés sont, en effet, d'autres projets. j'en suis à un peu une perte de ici. Pourquoi mon build échoue?
Vous êtes l'exécution d'un fichier de commandes. Où est ce fichier de commandes situé en référence au projet que vous avez l'intention de construire, et vous pouvez poster le lot le contenu du fichier (sans les informations exclusives)?
+1 Pour Nick. C'est probablement un problème de chemin d'accès de fichier. Il fonctionne très bien pour moi (le chemin que je suis de passage dans msbuild est aussi un chemin d'accès relatif) Aussi, pourquoi d'autres projets dans la solution de construction? Sont-ils en train d'être référencée par le projet.csproj?
MsBuild construire des projets référencés avant la construction de dépendances.
si vous êtes à l'aide de TFS, alors vous pouvez simplement annuler cs.proj fichier, mine de numéro fixe
OriginalL'auteur normanthesquid | 2013-10-16
Vous devez vous connecter pour publier un commentaire.
Bien, alors que ce ne peut être effectivement le même problème que d'autres sont à voir, j'ai résolu mon problème spécifique:
Le projet en question est un MVC 4 du projet. MVC est une option que vous pouvez activer dans le fichier de projet qui s'appuie sur le rasoir vues dans le cadre du processus de compilation, soi-disant, de sorte que vous pouvez attraper ce qui serait normalement les erreurs d'exécution au moment de la construction.
Cette fonctionnalité n'a pas été particulièrement bien pris en charge, et lorsque vous générez à partir de la ligne de commande, il commence à chercher des choses étranges dans les lieux qu'il est en train de faire ces intermédiaires construit. Les points de vue se construit dans un répertoire temporaire, puis il tente de le copier à partir des répertoires de projet, puis tout tombe à l'eau.
En outre, nous avons besoin de connaître la solution dir pour certains postes construire des événements, mais qu'il ne sera pas pertinent pour la plupart des gens. Nous construisons également à un package, puis de déployer directement pour le rendre plus facile de copier des trucs à divers endroits, il doit aller. Bâtiment comme un paquet aussi bien résout toutes les références du projet, pour les projets plus complexes. J'ai inclus ici pour les achèvements de souci.
Ici est la ligne qui a tout fonctionne correctement:
et la version simple que vraiment résolu le problème:
OriginalL'auteur normanthesquid
Il semble que si les projets ont été créés pour la solution de sorte que lorsque vous essayez de construire en dehors de la solution, ils cassent comme la solution a été le ciment qui a permis de résoudre l'emplacement de tous les projets.
Si vous construisez la solution à partir de la ligne de commande, ça fonctionne?
Si oui, fermez Visual Studio, ouvrez Notepad++ et préparez-vous pour commencer le montage du XML!
D'éliminer l'utilisation de chemins d'accès absolus, préférant un chemin relatif à partir de la solution de dossier racine.
Tout d'abord, Créez un dossier propriétés communes à la racine de votre inscription appelé "Commun.props", et d'ajouter la balise suivante:
Ensuite, ajouter cette balise à tous les membres de fichier de projet.
(Ce devrait être le premier nœud XML apparaître à la suite de la <Projet /> nœud)
Maintenant trouver tous les <ProjectReference /> les nœuds concernés .csproj fichiers. Modifier la référence de sorte que le chemin est relatif à la solution de la racine et le préfixe $(SrcRoot) propriété MsBuild.
par exemple
De
À
Maintenant un test pour s'assurer que vous pouvez construire en spécifiant le nom de la solution, puis naviguez jusqu'à et de compiler un projet individuel.
OriginalL'auteur Nicodemeus