2010-10-14 4 views
5

Je m'efforce d'installer une stratégie personnalisée sur TFS2010 à l'aide de VSIX.Déploiement de la stratégie personnalisée sur TFS2010 à l'aide de VSIX et de PKGDEF

J'ai la politique en place et fonctionne bien sur mon PC de développement, j'ai écrit une valeur au registre manuellement, et la politique est appliquée.

Le problème est la configuration d'un projet VSIX et le déploiement sur nos autres machines de développement.

J'ai suivi les instructions:

http://blogs.msdn.com/b/jimlamb/archive/2010/03/31/how-to-implement-package-and-deploy-custom-check-in-policy-for-tfs-2010.aspx

La méthode préférée semble être d'utiliser le nouveau type de projet VSIX dans VS 2010, j'ajouter un projet VSIX à ma solution, mais les instructions du Les entrées de blog sont très vagues sur ce qu'il faut faire ensuite. Ma compréhension est que le fichier PKGDEF signifie que vous n'avez pas écrire de valeur dans le registre lors du déploiement, et le contenu du fichier PKGDEF est déployé dans la configuration lorsque vous démarrez Visual Studio. C'est bien, mais comment construire le paquet VSIX?

J'ai essayé d'ajouter le projet de stratégie personnalisé au projet VSIX en tant que type de package VS, mais lorsque je compile, j'obtiens l'erreur suivante: La cible "PkgdefProjectOutputGroup" n'existe pas dans le projet.

J'ai essayé d'ajouter juste la DLL, le fichier pkgdef comme un type de contenu personnalisé, etc, mais rien ne fonctionne.

J'ai modifié le fichier PKGDEF dans le blog pour correspondre à mon propre projet. Lorsque j'installe le package VSIX sur une machine de développement, je peux voir le complément dans le Gestionnaire d'extensions dans Visual Studio, mais lorsque je vérifie les stratégies personnalisées dans TFS, j'obtiens l'erreur «n'est pas inscrit».

J'ai vraiment besoin d'une étape-par-étape pour mettre en place un projet VSIX pour déployer une politique personnalisée, quelqu'un peut-il aider?

+0

Avez-vous le SDK Visual Studio installé? –

+0

Ouais mec! Bien sûr! Comment pourrais-je créer un projet VSIX sans cela? – user343587

+0

Super. Avez-vous changé l'un des noms de classe ou l'espace de noms?Si c'est le cas, vous devez mettre à jour les informations sur le type d'enregistrement en conséquence. –

Répondre

6

L'article de blog a définitivement une étape manquante. Je pense que l'auteur voulait que vous ajoutiez le fichier pkgdef au projet VSIX (via l'éditeur vsixmanifest) en tant que contenu de type VS Package. Ensuite, ajoutez une référence de projet au projet de politique checkin à partir de votre projet VSIX (ce qui entraînera l'ajout de la DLL de la politique checkin à votre VSIX). En note .... lorsque vous choisissez "VS Package" comme type de contenu, puis pointez vers un projet ... il doit être un projet VS Package correct (pas seulement une classe C#/VB vanille bibliothèque).

+0

Si je recherche le fichier pkgdef sur mon lecteur C, les seules copies que je puisse voir sont celles de mon dossier de développement: vous vous attendez à voir ce fichier déployé dans un dossier d'extension de studio visuel ou à tout faire correctement? Est-ce que je manque une autre étape? Une autre question - est le fichier pkgdef dans l'article le fichier complet, ou juste un extrait? Le fichier pkgdef doit-il être généré avec un outil, ou pouvez-vous simplement copier et coller l'échantillon de code et le modifier pour vos propres besoins? – user343587

+0

Ahhh ... une étape que j'ai oublié de mentionner. Avez-vous défini le fichier pkgdef sur Build Action = Content et Include dans VSIX = True (fenêtre Propriétés)? Vous devriez le voir sous% LocalAppData% \ Microsoft \ VisualStudio \ 10.0Exp \ Extensions lorsque vous déboguez votre VSIX. Vous devriez pouvoir utiliser l'extrait du blog. –

+0

Aaron - merci, oui, j'ai ces propriétés définies sur le pkgdef. Après avoir cliqué sur le paquet VSIX pour l'installer, il s'installe sans erreur et je peux le voir dans les extensions de studio visuel. MAIS, quand je recherche le pkgdef et le dll sur mon disque C, ils sont seulement dans mon dossier de développement - devraient-ils être copiés quelque part par le VSIX lors de l'installation? Si oui, comment puis-je demander au VSIX de le faire? – user343587

1

Le problème est que le nom de l'assembly "NArrange.CheckinPolicy.dll" ne correspond pas au nom figurant dans Policies.pkgdef. Pour corriger ce assurez-vous que votre Policies.pkgdef ressemble à ceci:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies] 
"TeamFoundation.Samples.CheckinPolicies"="$PackageFolder$\NArrange.CheckinPolicy.dll" 

De plus, j'éviterait la confusion en changeant le « Nom du produit » dans source.extension.vsixmanifest à NArrange.CheckinPolicy. De cette façon, l'assembly correspond au nom du produit dans VS Extensions.

Questions connexes