Comment importer le projet msbuildcommunitytasks d'un autre projet msbuild avec un chemin de fichier relatif?
S'il vous plaît aller facile, je suis nouveau sur msbuild et msbuildtasks!
Comment puis-je définir une propriété qui représente un certain chemin d'accès au fichier à des objectifs de fichier que je veux importer? J'ai besoin de références relatives, de sorte qu'il fonctionne sur toutes les machines de dev. Mais la cible pour l'importation est d'essayer d'utiliser la relative chemin d'accès au fichier en interne, qui ne fonctionnera pas comme il est ré-évalué par rapport à la cible importé!
Effectivement, je suis en train de travailler autour de la comportement documenté de projets importés:
Tous les chemins relatifs dans importés
les projets sont interprétés par rapport à
le répertoire du projet importé.
Par conséquent, si un fichier de projet est
importés dans plusieurs fichiers de projet dans
différents endroits, de la relative
les chemins lors de l'importation du fichier de projet
seront interprétés différemment pour
chaque projet importé.
source d'informationauteur Noel Kennedy
Vous devez vous connecter pour publier un commentaire.
Il y a une question similaire à Est-il possible d'utiliser MSBuild Pack d'Extension sans installation?. La question était de savoir comment faire la même chose avec le MSBuild Pack D'Extensionqui sont semblables à cet aspect. Pour le Pack d'Extension vous devez déclarer la propriété ExtensionTasksPath,et pour les missions de la Communauté, vous devez déclarer une propriété nommée MSBuildCommunityTasksLib. Donc, dans votre cas, il devrait ressembler à:
@Sayed Ibrahim Hashimi
Talkin sur MSBuild4
Déclarant simplement le MSBuildCommunityTasksLib l'habitude de suffire causer si u vérifier la MSBuild.De la communauté.Les tâches.Les objectifs de fichier les propriétés sont déclarées comme suit
Donc, si U ne plus rouler la MSBuildCommunityTasksLib il sera de nouveau obtenir plus monté dans le MSBuild.De la communauté.Les tâches.Les objectifs de fichier car il n'est pas conditionnel
Si u ONT ÉGALEMENT REMPLACER MSBuildCommunityTasksPath de sorte que sa propriété n'est PAS DÉFINIE à PARTIR de MSBuildExtensionsPath mais à partir d'ur chemin d'accès personnalisé.
Correst moi si je m mal
Ok, j'ai trouvé la réponse. Essentiellement, vous devez définir la propriété MSBuildCommunityTasksPath un chemin d'accès relatif à l'original contenant le répertoire.
Par exemple, étant donné une structure de dossier comme ceci:
Où :
{Mon projet msbuild} est en Root\Projet\Build\
{MSbuildCommunityTasks} est en Root\Projet\Tools\MsBuildCommunityTasks
Pour obtenir les objectifs du projet pour faire référence à ses binaires via la propriété MSBuildCommunityTasksPath, il va trouver les tâches de fichier comme ceci:
Ensuite, vous pouvez importer les objectifs de fichier avec un autre membre de référence du dossier :
Cela semble être une réponse:
http://social.msdn.microsoft.com/forums/en-US/msbuild/thread/feb782e3-72ae-4476-9011-617796f217b6
Mais cela (si je comprends bien) semble être un ridicule solution. Pour obtenir les chemins de travailler j'ai besoin de changer la importés références de projet? Qu'arriverait-il si je voulais de référence du projet importé à partir de la troisième projet dans un autre dossier?!?
Je suis un noob à msbuild si je suis tout à fait honnête, cependant je viens de résoudre mon problème que j'ai eu avec cette. J'ai été en tournant l'un des objectifs de son propre projet et il n'était pas de trouver les chemins d'accès pour les msbuild communauté des chemins. Si vous regardez l'original de votre projet, vous pouvez trouver quelque chose comme cela
Copiez ce code dans votre nouveau projet et il devrait fonctionner.
Je voulais juste ajouter, car je ne peux pas commenter (rep), que, pour faire un chemin d'accès à la spécificité de votre projet, vous pouvez utiliser $(SolutionDir) sur votre propriété de groupe comme suit:
$(SolutionDir)\Mon Code\Communautaire\MSBuild\CommunityTasks\
De cette façon, son pas lié à un lecteur spécifique et peut être basé sur de la localisation du projet par rapport à vos solutions de structure de répertoire.
Aussi merci pour la réponse ci-dessus, il m'a aidé dans mon projet avec l'ajout ci-dessus.