Dans VS 2015, nous pouvions spécifier un chemin local dans global.json comme suit:
{ “projects”: [ “src”, “test”, “C:\\path\\to\\other\\projects” ] }
Il appendait ensuite tous les projets de ce chemin à la solution actuelle, ce qui nous permettrait de les référencer facilement à partir de projets existants.
Maintenant que VS 2017 a changé son modèle pour utiliser csproj et se débarrasser de project.json et de global.json, est-ce que quelqu’un sait comment y parvenir?
Le mieux que j’ai obtenu est d’inclure manuellement les autres projets, un par un, dans la solution. Ensuite, dans tous les projets existants qui doivent y faire référence, je devrais modifier leur csproj pour les inclure. Ceci est vraiment fastidieux par rapport à la méthode précédente consistant simplement à inclure un chemin de fichier dans un emplacement.
Merci pour toute aide concernant ceci.
Bon les gars, nous sums en mai et nous n’avons toujours pas de solution officielle de Microsoft. Quelque chose fonctionne avec Powershell et la nouvelle interface de ligne de commande .NET. Il existe déjà des commandes intégrées dans dotnet.exe pour append / supprimer des solutions à un projet, alors voici ce que j’ai proposé.
Includes.json
{ "Includes": [ "C:\\projects\\SomeProjectA\\src", "C:\\git\\SomeProjectB\\src" ] }
Add-Includes.ps1
echo "Beginning import of projects in Includes.json" $JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json $IncludePaths = $JsonIncludes.Includes; foreach ($IncludePath in $IncludePaths) { $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` -Include *.csproj ` -Recurse ` | % {$_.FullName } foreach ($ProjectFile in $ProjectFiles) { dotnet sln add $ProjectFile } }
Supprimer-Inclus.ps1
echo "Beginning removal of projects in Includes.json" $JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json $IncludePaths = $JsonIncludes.Includes; foreach ($IncludePath in $IncludePaths) { $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` -Include *.csproj ` -Recurse ` | % {$_.FullName } foreach ($ProjectFile in $ProjectFiles) { dotnet sln remove $ProjectFile } }
Cela représente quelques étapes supplémentaires par rapport à l’utilisation de l’ancien fichier Global.json, mais c’est ce que nous avons besoin. Pour que ce soit vraiment pratique, ajoutez un dossier de solution et incluez le fichier Includes.json pour pouvoir le modifier facilement à partir de Visual Studio.
Quelques notes:
Juste matière à reflection. Voici le repository si vous voulez cloner / télécharger: https://github.com/rushfive/VS2017-Includes