Comment mettre à jour les fichiers csproj avec VS2017

VS2017 a jusqu'à présent converti correctement plusieurs project.json/.xproj projets basés sur le nouveau .csproj format.

je voudrais aussi utiliser le nouveau .csproj format avec les anciens .csproj projets qui auparavant ciblaient uniquement le cadre .NET (c.-à-d. qu'ils ne fonctionnaient pas avec dnx/dotnet CLI).

il semble que même si un projet ne ciblerait que le cadre. net, les avantages de <PackageReference> et facilement modifiable .csproj le fichier semble valoir le (espérons que pas trop grand) difficulté.

est-ce possible de faire directement avec Visual Studio 2017?

Si non, quelles étapes manuelles nécessaires?

25
demandé sur Drew Noakes 2017-03-08 01:39:02
la source

3 ответов

je modifie ma réponse pour qu'il soit clair que vous n'avez pas besoin de mettre à jour votre .csproj fichier. Comme le souligne Drew ci-dessous, il y a des avantages à le faire. Cependant, VS2017 va continuer à travailler avec le classique csproj fichier de l'amende juste. En outre, il n'y a rien dans VS2017 qui effectuera la mise à niveau pour vous. Si vous souhaitez profiter du nouveau format, la promenade ci-dessous devrait vous aider.

mise à jour .csproj le fichier au nouveau format Visual Studio 2017 est facile pour bibliothèques de classe simples ou projets de console.

Si vous n'utilisez pas de contrôle de version, avant de commencer, assurez-vous de sauvegarder votre csproj le fichier, et les deux Properties/AssemblyInfo.cs et packages.config. La nouvelle csproj le fichier est grand. Dans de nombreux projets, j'ai remplacé des centaines de lignes de code avec une dizaine de. Cependant, comme Visual Studio 2017 continue à soutenir le précédent csproj fichiers, cela peut être un cas de l'optimisation prématurée. Si vous avez une solution qui contient des douzaines de projets, beaucoup de NuGet les paquets, et toute personnalisation csproj vous êtes probablement en train d'entreprendre un projet de travail inutile.

remplacer la totalité de votre contenu .csproj fichier avec le code approprié comme suit.

Bibliothèque De Classe

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net462</TargetFramework>
  </PropertyGroup>
</Project>

Console Application

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net462</TargetFramework>
  </PropertyGroup>
</Project>

Changer <TargetFramework>attribuez à la version .NET dont vous avez besoin comme net452, net46, net461, etc.

par défaut tout le code dans votre dossier de projet sera repris par le compilateur. Si vous avez du code en dehors de votre dossier de projet, vous devez le référencer explicitement de la même manière que vous le faites dans les versions précédentes de Visual Studio et csproj.

après avoir fait les changements ci-dessus chargez votre solution dans Visual Studio 2017. À ce stade, les projets les plus fondamentaux devraient construire. Si ce n'est pas le cas, vous devrez probablement ajouter des références d'assemblage ou de projet manquantes. Ajouter des références est très similaire à le faire dans les versions précédentes de Visual Studio. Sélectionnez votre projet dans L'Explorateur de solutions, faites un clic droit sur Dependencies et sélectionnez Add Reference. Ajoutez toute référence de cadre ou de projet qui vous manque.

tentez de reconstruire votre solution/projet à nouveau. Vous pouvez recevoir des erreurs sur les attributs dupliqués. Cette erreur est due à des attributs précédemment définis dans AssemblyInfo.cs ont été déplacés dans le fichier csproj. La suppression de l' AssemblyInfo.cs fichier, trouvé sous le dossier Propriétés, devrait résoudre ces erreurs. Avant de les supprimer AssemblyInfo.cs vous devez déplacer toutes les données que vous avez défini. La plupart des attributs peuvent être entrés dans la section Information du paquet de votre dossier de projet. Cliquez avec le bouton droit de la souris sur le nom de votre projet, sélectionnez la page du paquet et saisissez toutes les données précédemment définies dans votre AssemblyInfo.cs fichier. Cela inclut des éléments tels que la version d'assemblage, l'auteur, le droit d'auteur, etc.

ci-Dessous est une capture d'écran qui montre l'étape précédente.

enter image description here

si à l'aide des packages NuGet dans votre projet, vous devez les transférer dans le nouveau format. Avant Visual Studio 2017 NuGet s'est appuyé sur un fichier nommé Packages.config à la racine de votre projet, en plus de références dans csproj. Pour migrer vos références de paquets NuGet, cliquez avec le bouton droit de la souris sur votre solution et chargez le Gestionnaire de paquets Nuget. Une fois chargé dans le coin supérieur droit, cliquez sur le cog, et les Options du Gestionnaire de paquets NuGet se chargeront. Sélectionnez General. En Vertu De Gestion De Paquets modifier l'option Default package management format à PackageReference. À ce stade, vous devrez ajouter manuellement tous vos paquets NuGet à votre solution. Vous pouvez trouver tous les paquets dans le packages.config le fichier dans le dossier racine du projet. Une fois que vous avez ajouté tous les paquets, vous pouvez supprimer le packages.config fichier.

24
répondu Mark 2018-07-02 12:46:53
la source

j'ai créé un outil qui fonctionne avec csproj fichiers: https://github.com/hvanbakel/CsprojToVs2017

Vous pouvez l'exécuter sur un csproj et il va convertir le fichier et de créer une sauvegarde de l'ancien.

15
répondu thekip 2017-09-06 09:19:58
la source

il y a un outil étonnant qui convertit automatiquement les projets qui utilisent des paquets.config ou d'un projet.json à PackageReference.

https://marketplace.visualstudio.com/items?itemName=TaylorSouthwickMSFT.NuGetPackagetoProjectjsonConverter

  1. installez-le dans votre studio visuel et faites un clic droit sur la solution

  2. après avoir installé l'extension, ouvrez votre solution et cliquez avec le bouton droit de la souris la solution Solution Explorer et cliquez sur Mise à niveau vers le paquet Références

  3. après avoir sélectionné cela, le projet sera transformé comme indiqué ci-dessous. Il est fortement recommandé de le faire sur un répertoire activé par le contrôle des sources pour que vous puissiez facilement annuler si quelque chose tourne mal.

enter image description here

2
répondu Alper Ebicoglu 2018-03-22 12:57:11
la source