in vs 2008, existe-t-il un moyen de définir le répertoire intermédiaire (où les fichiers .OBJ vont, pas les objectifs finaux) dans un projet C #? P>
3 Réponses :
Je ne le crois pas. Cependant, vous pouvez copier vos exécutables, des DLL, peu importe, à un autre dossier d'un événement post-construction. (Onglet Construire des événements dans les propriétés du projet) P>
Vous devez remplacer BasinmermediateOutputPath MsBuild Var, plus sur celui-ci ici . p>
Cela fonctionne pour la plupart, mais je cherchais un moyen de le définir dans chaque projet, le bâtiment de l'IDE ne polluerait pas le dossier source. Cependant, la fixation de la baseTermeDiateOutPutPath dans le projet déclenche un avertissement de sécurité. Hélas, cela ne semble pas possible. soupir...
L'avertissement de sécurité est là pour vous informer que quelque chose hors de l'ordinaire est arrivé, vous pouvez couper l'avertissement, et vous ne le verrez plus avant de changer quelque chose d'autre.
Il n'y a rien d'extraordinaire sur la personnalisation de la sortie intermédiaire. Visual Studio accepte joyeusement les projets C ++ Personnalisation de la localisation des fichiers intermédiaires (via INTDIR Propriété) sans boîte de dialogue d'avertissement de sécurité, mais elle jette une tantramme lorsque la même chose est faite dans le projet C #.
J'ai trouvé une solution à cela à l'aide de Visual Studio Express 2013; J'oublie quelle version de VS a introduit Msbuild, et je ne peux pas dire avec certitude que cela fonctionnera pour toute autre version. Mais voici ici:
dans Proche du Début de Construire et regarder la sortie. Dans mon cas, le chemin complet était p> Remarque: Dans mon cas, il y avait déjà un dossier donc (comme admin) j'ai créé le dossier et placé un Remarque: Lorsque j'ai construit, les Objs ont été placés sous un répertoire de construction sous la solution, non sous le projet, dans un sous-répertoire avec la convention de nommage typique: Cela n'a pas fonctionné exactement comme si vous le souhaitez: je voulais vraiment placer ces Dans Je suppose que cela peut être utilisé pour configurer l'une de ces variables ; Lecture de la valeur par défaut c: \ windows \ microsoft.net \ framework code> sont des sous-répertoires correspondant aux versions .NET; Avec VSX2013 sur mon système, le dossier d'intérêt est v4.0.30319 code>. (C'est la version .NET utilisée par MsBuild, pas celle que je cible.) Dans ce dossier, les fichiers CODE> .TARGETS CODE>, qui sont des collections de règles MSBUILD. P> Microsoft.cshaarp.Targets code> Certaines règles vont importer davantage de fichiers de règles. Le tiers de ces relevés d'importation importations à partir du fichier nommé par la variable de construction CustomBeforemicrosoftCshacharpTargets code>. Vous pourriez être capable de comprendre le nom de cela en lisant les règles, mais il est plus facile d'ajouter une étape de construction personnalisée de p> C: \ Program Files (x86) \ msbuild \ 12.0 < / code> mais pas v12.0 code>. p> personnalisé.before.microsoft.cshaarp.targets code > fichier qui ressemble à ceci: p> $ (projetName) code> ne fonctionne pas, utilise $ (msbuildprojectName) code >. P> débogage code> ou ou Libérer code> ou x86 \ débog code> ou x64 \ version code>. P> % Temp% code> Mais la variable n'a pas été développée, je suis donc terminé avec un dossier de construction sous le projet appelé % temp% code>. Placer le chemin expansé dans la règle a fonctionné juste bien, mais d'autres sous-dossiers de % Appdata% code> ont échoué en raison de problèmes d'autorisations. P> .TArgets code> est une corvée, mais il y a quelques commentaires utiles. P> P>
Juste une autre note: l'approche ci-dessus fonctionne pour VS CE 2017. CustomBeforemicrosoftCshacharpTartgets CODE> a une valeur de C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Communauté \ MSBUILD \ V15. 0 code>, et encore une fois, j'ai dû créer le dossier v15.0 code>; Aucun changement requis pour le XML.
+1 pour une bonne question. J'ai essayé de faire la même chose pour les mêmes raisons (ne pas polluer le répertoire source avec la sortie du compilateur) et a échoué (sans boîte de dialogue d'avertissement de sécurité - mais ce n'est pas acceptable pour moi).
Quelqu'un sait si cette situation a changé dans Visual Studio 2010 / .net4 ...?
MSVS 2019 a un paramètre mais des fichiers intermédiaires, bien que pour C ++ (.exp, .iobj, .iPDB, LIB et .PDB), apparaissent toujours dans la sortie Dir.