J'ai soigneusement utilisé cette réponse pour créez un .vsix pour Visual Studio 2017 Professional de sorte qu'un certain projet avec des stratégies d'archivage soit enregistré et utilisé chaque fois que j'archive du code dans TFS.

Après l'installation de .vsix lorsque j'ouvre Team Explorer et la page Modifications en attente, une erreur apparaît:

enter image description here

J'ai ouvert la ruche privateregistry.bin avec regedit et je n'ai pas trouvé de clé similaire avec celle que j'ai ajoutée pour Visual Studio 2010.

Fichier .pkgdef:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"KeywordExpansionPolicy"="$PackageFolder$\KeywordExpansionPolicy.dll"

Fichier .vsixmanifest:

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
    <Identity Id="CheckInPolicies.761071af-97b8-4262-a392-35ff1ee54968" Version="1.0" Language="en-US" Publisher="publisher" />
    <DisplayName>CheckInPolicies</DisplayName>
    <Description xml:space="preserve">Policies: keyword expansion.</Description>
</Metadata>
<Installation>
    <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.Pro" />
    <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.IntegratedShell" />
</Installation>
<Dependencies>
</Dependencies>
<Assets>
    <Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="KeywordExpansionPolicy" Path="|KeywordExpansionPolicy|" AssemblyName="|KeywordExpansionPolicy;AssemblyName|" />
    <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="File" Path="KeywordExpansion.pkgdef" />
</Assets>
<Prerequisites>
    <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,16.0)" DisplayName="Visual Studio core editor" />
</Prerequisites>
</PackageManifest>

Qu'est ce qui pourrait aller mal?

0
tomab 16 nov. 2017 à 14:38

4 réponses

Meilleure réponse

Enfin, en signalant un incident à l'équipe de support MSDN, l'erreur a été résolue. Un simple, bien sûr :)

Le projet qui contient la logique réelle de la stratégie d'archivage doit avoir deux références aux bibliothèques VS:

References to VS libraries

Ces références étaient là dès le premier moment de la création du projet, mais leur version était le problème. Ils auraient dû avoir la version, ou le chemin, pour VS 2017, la version VS de ciblage pour laquelle l'extension est censée être créée, et non un VS plus ancien. Cliquez sur Microsoft.TeamFoundation.Client, Alt + Entrée pour la fenêtre Propriétés et il y a la version (propriété Path):

Version of above references

0
tomab 14 mars 2018 à 10:53

Je n'ai pas trouvé de solution complète, mais je l'ai fait comme solution de contournement pour résoudre le problème:

VS 2017 uniquement - Run

sn -Vr *,*

Dans une session de ligne de commande VS.

0
Mogsdad 6 févr. 2018 à 17:00

Étant donné que vous aviez installé deux versions de Visual Studio, VS 2010 et VS2017.

Si vous avez créé une stratégie d'enregistrement personnalisée à l'aide de VS 2010 et que vous essayez de la faire fonctionner avec VS 2017. Assurez-vous d'abord que vous avez reconstruit dans VS 2017. Ensuite, faites attention à l'avis ci-dessous:

Visual Studio 2017: les stratégies d'enregistrement dans Visual Studio 2017 doivent être définies via Team Explorer, tf.exe ou via clés de registre déclaré dans le pkgdef d'une extension Visual Studio. Stratégies n'appliquez qu'une seule installation de Visual Studio 2017 sur votre ordinateur. Si vous avez plusieurs installations de Visual Studio 2017, vous devrez définir la politique d'enregistrement à chaque installation.

Lien source: https: //www.visualstudio. com / en-us / docs / tfvc / add-check-policies

Dans votre cas, nous vous suggérons également d'essayer de le reconstruire sur une machine sur laquelle uniquement VS 2017 est installé. Cela réduira le problème s'il est lié à votre environnement installé à plusieurs VS. Le projet / solution de stratégie d'archivage fait peut-être toujours référence aux bibliothèques VS 2010.

0
PatrickLu-MSFT 19 nov. 2017 à 17:49

Ouvrez Outils> Extension et mises à jour vérifiez si l'extension est activée. S'il n'est pas activé, activez-le et redémarrez VS. Vérifiez si l'avertissement de politique apparaît.

Sinon, suivez la réponse de Tomab et corrigez les dépendances d'extension pour la version Visual Studio.

1
Varun Sood 21 févr. 2020 à 10:56
47328725