Comment trouver Windows SDK SetEnv.cmd / SetEnv.cmd Ne fonctionne pas correctement
Nous avons une Équipe de la Ville de Serveur de génération d'exécution et que vous voulez compiler un projet Visual C++. Jusqu'à présent, ce serait facile, depuis que je suis à l'installation de Windows Agent de Build avec le SDK de Windows, mais nous n'avons pas une solution ou d'un fichier de projet.
Les fichiers de projet sont plutôt créé avec CMake. CMake semble être un peu stupide (ne peut pas générer de Solution lorsque Visual Studio n'est pas installé), mais avec quelques astuces, je pourrais l'obtenir pour le faire. La solution peut alors être construit avec MSBuild.
Et c'est là le problème. Pour que cela fonctionne automatiquement, j'ai besoin d'appeler le Windows SDK SetEnv.cmd. Et je n'arrive pas à trouver automatiquement. C'est dans le sous-répertoire bin du SDK de Windows, mais ni ben ni les racines sont dans le chemin, et la %mssdk%
variable d'environnement est définie par la SetEnv.cmd et n'est pas disponible auparavant!
L'ajout du kit de développement logiciel Windows\bin dir pour le CHEMIN mène à la SetEnv.cmd ne fonctionne plus (il se termine avec un message comme The x86 compilers are not currently installed
et Jump target Set_x86 not found
.
Le début d'un lien de menu de l'appel de la SetEnv.cmd avec le SDK de Windows dir comme répertoire de travail à la place. Mais si j'ajoute le répertoire racine du CHEMIN d'accès, Bin\SetEnv.cmd n'est pas disponible.
Comment puis-je trouver SetEnv.cmd automatiquement? Même en mettant une variable d'environnement pour le chemin d'accès complet de la setenv.cmd ne fonctionne pas, et quand je définis %mssdk% car le sdk dir, appel %mssdk%\bin\SetEnv ne fonctionne pas ainsi. J'ai aussi essayé de définir %mssdk%, puis des cd %mssdk%, puis de l'appel bin\SetEnv. Aussi les compilateurs ne trouve pas dans tous ces cas. Il ne fonctionnera pas non plus si je manuellement cd à la racine ou bin dir sur une ligne de commande, et ensuite appeler SetEnv.cmd...
Le menu démarrer lien fonctionne très bien.
Pour la petite histoire, ma solution pour l'instant, aussi étrange soit-il, est le suivant:
J'ai créé un fichier MSBuild qui crée le fichier de solution avec CMake sur la ligne de commande, puis appelle à la création de la solution avec une tâche MSBuild. MSBuild fichier peut être facilement construit à partir de TeamCity, si j'ai besoin de quelques astuces supplémentaires pour satisfaire CMake est stupide à la recherche pour le compilateur, mais je ne vais pas l'appeler chose. Pas vraiment satisfaisant, mais il fonctionne.
OriginalL'auteur OregonGhost | 2009-05-20
Vous devez vous connecter pour publier un commentaire.
Ma solution (jeux de
%WindowsSdkPath%
, de sorte queSetEnv.cmd
pourrait être trouvé sous%WindowsSdkPath%Bin\
):J'ai été inspiré par le
SetEnv.cmd
lui-même...Merci pour cette. Juste ce que je cherchais. 🙂
Vous avez raison, en fait, j'avais déjà une amélioration de la partie à la maison (il ne fonctionne pas bien sur Windows Server 2003). J'ai édité ma réponse en conséquence.
Revisiter mes questions, je vais accepter cela car c'est le seul, et il doit travailler et déjà aidé quelqu'un. Je suis toujours ouverte à d'autres solutions bien 🙂
OriginalL'auteur Mac
Mac, belle réponse!
Maintenant, je voudrais que msbuild avec mon fichier de projet. Mais avant je devrais courir SetEnv.Cmd - droit?
Donc, ici nous allons:
Maintenant ça fonctionne 🙂
OriginalL'auteur grundic