Question

Est-il possible de fractionner les informations d’un fichier .csproj sur plusieurs fichiers? Un peu comme une version de projet de la fonctionnalité partial class .

Était-ce utile?

La solution

Vous ne pouvez pas avoir plus d’un maître csproj. Mais comme le câblage sous-jacent du csproj est effectué à l'aide de msbuild, vous pouvez simplement avoir plusieurs csproj partiels qui s'importent les uns les autres. Le fichier de solution contiendrait le plus dérivé csproj.

project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ....
</Project>

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project1.csproj" />
    ...
</Project>

project.csproj : il s'agit du projet principal référencé par le fichier de solution.

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project2.csproj" />
    ...
</Project>

En bout de ligne, la fonction Importer de msbuild permet de créer des fichiers csproj partiels contenant chacun des définitions que le projet principal (project.csproj, dans mon exemple) utiliserait.

Visual Studio affiche une boîte de dialogue Avertissement de sécurité pour le projet lorsque vous ouvrez la solution ou le fichier de projet modifié. Choisissez l'option Charger le projet normalement , puis appuyez sur OK . Lorsque vous rouvrirez la solution ultérieurement, l'avertissement ne s'affichera pas car la configuration pour Charger le projet normalement est stockée dans le fichier suo .

Autres conseils

Oui, vous pouvez partager des informations sur plusieurs fichiers. Vous pouvez utiliser Importer un élément (MSBuild) .

Notez que Visual Studio vous donnera avertissement de sécurité gênant si vous essayerez d’ouvrir un fichier de projet contenant d’autres fichiers de projet.

Lien utile à partir de MSDN:

Comment: utiliser la même cible dans plusieurs fichiers de projet

Notez que les fichiers externes ont l'extension .targets selon les conventions.

Vous pouvez combiner plusieurs projets en une solution unique, mais je ne pense pas que ce soit tout à fait ce que vous aviez à l'esprit, car chaque projet doit être un projet complet dans ce cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top