Différence entre les projets et les dépendances dll en .Net dans la compilation d'assemblage final

StackOverflow https://stackoverflow.com/questions/3714686

Question

Disons que j'ai deux projets A et B. A dépend de B. Je peux préciser de deux façons:

  • Inclure A et B dans la même solution et spécifiez B en tant que dépendance de projet A. Cela apparaît dans le projet msbuild de A comme un nœud « ProjectReference ».
  • Inclure une référence à la dll B compilé en tant que dépendance pour A. Cela apparaît dans le projet msbuild de A comme un nœud « Référence »

Ma question est, une fois que j'ai construire l'ensemble A, est-il une différence dans la sortie finale entre ces deux méthodes.

J'ai essayé de créer quelques projets simples modèle cette relation et a tenté une comparaison - mais différents outils de comparaison me disent des choses différentes. En attendant d'écrire quelque chose qui compare ces fichiers octet par octet, je me demandais si vous étiez au courant des gens à ce sujet. Plus précisément, il y aura une différence dans le comportement de l'ensemble construit si j'utilise la référence dll au lieu d'une référence de projet.

Était-ce utile?

La solution

Si les sources projet B ont pas changé entre les deux constructions du projet A, il n'y aura pas de différence dans le comportement du projet Une sortie. Toutefois, si les sources projet B ont changé, faisant référence comme un projet de projet A entraînera projet B à reconstruire ainsi. Cette différence est ce qui détermine le choix de la façon de projet de référence B du projet A:

  • si vous possédez la source des deux projets B et projet A, et ils sont accouplées bien, ou si les deux sont en subit de développement actif et le projet B rupture souvent des changements de son interface publique, vous voulez projet de référence B comme projet. Cela garantirait que le projet A utilise toujours dans sa construction la plus sortie mise à jour du projet B.

  • si le projet B est la dépendance externe, vous ne vous développer, ou vous n'avez pas pas les sources, ou si elle a été expédiée déjà et vous ne pouvez pas fournir la version modifiée avec le projet A, vous voulez pour faire référence à la sortie projet pré-construit B, pour vous assurer le développement et la tester avec la même version du projet B, qui est le plus susceptible d'être sur les ordinateurs de vos utilisateurs.

Autres conseils

Ajout comme référence du projet vient l'avantage que le montage « B » est construit automatiquement si nécessaire.

Une fois l'assemblage "A" est construit, il n'y a pas de différence.

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