Question

Beaucoup de messages similaires, mais ce n'est pas un double je crois. Lorsque j'ajoute des références dans Visual Studio, certaines DLL sont copiées localement alors que d'autres non.

Je comprends que les DLL externes que j'obtiens ailleurs devraient avoir une référence locale, mais je suppose que celles que je choisis parmi les longues références de Visual Studio (.NET et COM) ne doivent pas être copiées localement. Non.

Maintenant, j'ai remarqué que lorsque je choisis Shell32 dans COM DLL est copié localement. Par défaut, "Copy Local" est défini sur true. J'ai donc supposé que .NET sont ceux qui n'ont pas besoin d'avoir une référence locale alors que COM devrait avoir. Mais quand j'ai fait référence à Office Interop Objects (com), je vois qu'ils ne sont pas copiés localement.

  1. Comment est-ce que certains sont copiés localement et d'autres non. (Essayer de savoir quelque chose de gentil)

  2. Comment dois-je également définir la propriété "Copier" Local "pour les références en général? Est-il recommandé de suivre ce que Visual Studio fait par défaut?

Merci.

Était-ce utile?

La solution

Les chances que VS se trompent par défaut sont assez faibles. Votre machine de développement n'est (normalement) pas si différente de la machine de votre utilisateur, ce qui compte, c'est ce qui est dans votre GAC. Vous aurez installé .NET, tout comme l'utilisateur, les assemblages de framework sont donc dans votre GAC ainsi que l'utilisateur, alors ne vous faites pas copier local. Tout assemblage .NET tiers est copié local, y compris le vôtre.

Le seul cas d'angle est composé, primaires d'interopératifs. Vous avez tendance à avoir installé sur votre machine de développement, l'Office et Internet Explorer PIAS sont assez courants. Ils ne seront pas disponibles sur la machine de l'utilisateur à moins que quelqu'un ne s'occupe de l'installer. Ce n'est pas souvent que vous besoin Un PIA, ils ne sont nécessaires que lorsque votre propre assemblée en expose un type. Il suffit de retourner la copie locale dans true. Il s'agit par ailleurs d'un problème de disparition rapide, les projets construits par VS2010 prennent en charge la fonctionnalité des types d'interopérations d'intégration, autrement connue sous le nom de Goody "No-Pia".

Enfin et surtout, vous devez toujours tester votre installateur. Dans le cas peu probable, vous avez raté quelque chose, ce test le éliminera rapidement.

Autres conseils

Je l'utilise pour contrôler ce qui est publié dans la sortie de construction. Si la référence est quelque chose qui doit être déployé en privé, je le définit sur true. Sinon, je l'ai mis sur False.

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