web-dev-qa-db-fra.com

Pourquoi la propriété Copier local pour ma référence est-elle désactivée?

J'essaie de définir un DLL à référencer explicitement pour être copié dans mon dossier local cependant quand je vais dans les propriétés de cette référence, le Copy Local la propriété est grisée/désactivée.

Disabled Copy Local property

Habituellement, mes projets VB.NET ont un My Project élément directement sous le nom du projet sur lequel je peux double-cliquer >> références et définir le Copy Local, mais mon application console C # ne semble pas en avoir.

My Project References

Ai-je peut-être mal configuré mon projet? Toute aide à ce sujet sera grandement appréciée.

53
cbillowes

Directement à partir de ce SO post:

Votre commentaire à la réponse de Hans indique qu'il s'agit d'un assemblage COM et que vous utilisez Visual Studio 2010.

Cela signifie que la référence d'assembly a probablement été ajoutée avec le paramètre "Embed Interop Types" défini sur true. Cela a pour effet de lier l'assembly COM dans votre binaire, supprimant la nécessité de le déployer complètement. Le lien suivant a une explication plus détaillée • http://msdn.Microsoft.com/en-us/library/dd409610.aspx Si vous souhaitez le déployer, vous devrez alors procéder comme suit • Cliquez sur la référence dans l'onglet références • Appuyez sur F4 pour afficher la grille des propriétés • Réglez "Embed Interop Types" sur False (cela ne permet pas de copier Copy Local) • Définissez "Copy Local" sur true

Si vous souhaitez copier local, vous devez définir Embed Interop Types à False pour l'Assemblée, dans votre cas, Microsoft.Office.Interop.Excel. L'incorporation de types d'interopérabilité facilite le déploiement des assemblys COM dans la mesure où elle incorpore les assemblys dans votre assembly, éliminant ainsi la nécessité de déployer des assemblys d'interopérabilité avec l'application.

84
StoriKnow