Lors de la création d'un modèle pour VSIX, nous pouvons permettre à l'utilisateur de choisir la version du framework .Net. Voici comment procéder :

<TargetFrameworkVersion>v$targetframeworkversion$</TargetFrameworkVersion>

Désormais, avec la sortie de la nouvelle version de Visual Studio (16.8), cela permet également à l'utilisateur de sélectionner la version .NET Core. Mais ce code ne semble pas fonctionner dans le projet de modèle .NET Core et affiche des nombres différents au lieu des valeurs netcoreapp3.1 ou net50-windows. aussi .net core utilise <TargetFramework> au lieu de <TargetFrameworkVersion> alors quel est le bon paramètre? J'ai testé ceux-ci :

1.résultat = 4,5

<TargetFrameworkVersion>$targetframeworkversion$</TargetFrameworkVersion>

2.résultat = $targetframework$

<TargetFramework>$targetframework$</TargetFramework>

3.résultat = 4,5

<TargetFramework>$targetframeworkversion$</TargetFramework>
1
Mahdi 11 nov. 2020 à 17:02

1 réponse

Meilleure réponse

Je pense que vous ne pouvez pas créer un tel modèle de projet vsix pour Net Core jusqu'à présent.

Je pense que vous avez créé le projet de modèle de projet pour répondre à vos besoins.

enter image description here

Et vous devez noter que ce modèle de projet utilise l'ancien format de style sdk plutôt que le nouveau format sdk (Net Core). De plus, ce qu'il entre et sort est toujours le cadre de Net Framework.

Donc peu importe comment vous modifiez sa forme proj sur la base de ce modèle, ce sera toujours net framework. Vous pouvez voir cette interface, c'est un modèle personnalisé créé par moi, je vais le changer pour l'utiliser

<Project Sdk="Microsoft.NET.Sdk">
....

<TargetFramework>$targetframeworkversion$</TargetFramework>

.....

</Project>

Et je décharge également le projet Modèle de projet --> modifiez le fichier xxx.csproj , modifiez pour utiliser ceux-ci :

 <Project Sdk="Microsoft.NET.Sdk">
    ....
    
    <TargetFramework>netcoreapp3.1</TargetFramework>
    
    .....
    
  </Project>

Construisez le modèle de projet et placez-le dans le C:\Users\xxx\Documents\Visual Studio 2019\Templates\ProjectTemplates.

Redémarrez VS, puis utilisez ce tampon, vous pouvez voir ceci :

enter image description here

Il cible toujours avec net frameowrk. Et cela prouve que le framework modifié est contrôlé par les paramètres internes du projet de modèle de projet lui-même, et nous ne pouvons pas modifier ce paramètre interne.

En détail, $targetframeworkversion$ est le paramètre du modèle de projet lui-même et puisque le modèle de projet est publié par Microsoft avec net framework, le paramètre est donc toujours net framework et d'autres comportements incontrôlables peuvent également conduire à la corruption du projet de modèle. Nous ne pouvons donc pas obtenir le Net Core avec cela.

Suggestion

À titre de suggestion, vous devriez contacter l'équipe Microsoft sur DC Forum ou github pour publier un nouveau projet de modèle de projet avec le nouveau format sdk (format Net Core) .

0
Perry Qian-MSFT 12 nov. 2020 à 10:13