J'essaie de compiler un projet .Net c# en plusieurs dlls. Mais voici le problème.
Voici la structure de mon projet.
Bin
Dir1
Dir2
File1.cs
File2.cs
myproject.csproj
Je veux compiler ce projet en File1.dll et File2.dll. File1.dll et File2.dll utilisent tous deux du code dans divers fichiers .cs qui se trouvent dans Dir1 et Dir2. Certaines de ces classes dans les fichiers .cs présents dans les sous-répertoires sont requises par File1.cs et d'autres par File2.cs. Il y en aura certaines qui seront utilisées à la fois par File1.cs et File2.cs.
J'ai utilisé les éléments suivants :
csc /t:library /out:File1.dll /recurse:*.cs
csc /t:library /out:File2.dll /recurse:*.cs
Mais les dlls résultants étaient des copies exactes les uns des autres avec juste des noms de fichiers différents. Existe-t-il un moyen de les compiler de telle sorte que lorsque j'inspecte chaque dll dans le navigateur d'objets, elle ne contienne que les classes des fichiers .cs de Dir1 et Dir2 qui sont référencées dans File1.cs pour File1.dll et de même pour File2.dll ?
Je veux faire cela de préférence dans le cadre d'une étape de post-construction dans Visual Studio.
Merci pour votre temps...
EDITAR
Merci pour toutes vos réponses. De nombreuses suggestions ont été faites pour diviser la solution en plusieurs projets. Bien que ce soit une façon de faire, je ne suis pas sûr de vouloir créer des dépendances pour les deux dlls, c'est-à-dire File1.dll et File2.dll. Laissez-moi vous expliquer.
Le problème que je vois en créant plusieurs projets est qu'il y aura du code dont File1.cs et File2.cs auront besoin. Je ne veux pas qu'il soit répété dans les deux projets. Garder le code commun dans un troisième projet signifierait qu'une troisième dll serait créée, nécessaire à la fois pour File1.dll et File2.dll. Je ne veux pas de cela. Je veux que seuls File1.dll et File2.dll soient créés, c'est pourquoi je les garde dans un seul projet. Avez-vous des suggestions sur la manière de réaliser ce projet ?
Merci encore pour vos réponses.
Santé.