2009-05-04 12 views
0

J'ai créé une solution ClickOnce avec VS2008. Mon projet principal fait référence à un autre projet qui fait référence à COM dll en tant que "liens". Quand je compile ma solution dans VS, les dlls des autres projets sont déplacés dans mon dossier bin mais lorsque je publie et lance le projet, ces fichiers ne sont pas présents dans mon dossier Local Settings \ Apps \ 2.0 ....ClickOnce & References

Je sais que je peux ajouter chaque dll de l'autre projet en tant que référence de mon projet mais je voudrais une solution plus propre ...

Est-il possible?

Répondre

2

Commencez par ajouter directement ces fichiers à votre projet. ensuite goto propriétés d'application -> Publier -> Les fichiers d'application

Sélectionnez « Afficher tous les fichiers » si vous ne voyez pas les fichiers dont vous avez besoin et définir leur publier le statut « Inclure » NOT « Inclure (Auto) ». Ceci est important ou ils ne seront pas ajoutés.

Veuillez noter que si vous mettez à jour les fichiers, vous devrez les supprimer et les ajouter de nouveau et redéfinir leur état de publication. C'est un petit bug.

Voir une question précédente de la mine pour plus d'informations: ClickOnce - Overwriting content files

+0

Ok, merci d'ajouter chaque fichier. C'est la solution la plus simple ... – pebg

+1

Quelle est la différence entre 'Include-auto' et Include? –

+0

Avec include-auto, Visual Studio décidera de les inclure ou non. Vous devez forcer VS à les inclure en utilisant 'include' – TimothyP

0

Vous devez ouvrir la boîte de dialogue "Fichiers d'application" dans l'onglet Publier de votre projet. À partir de là, vous pouvez définir le type de publication (Inclure, Prérequis, etc.) de chacun de vos fichiers. S'il s'agit d'une DLL non managée, vous devez ajouter le fichier .dll en tant que fichier à votre projet et marquer son action de construction en tant que "Données". Vous pouvez ensuite définir le type de publication de ce fichier sur Inclure.

+0

Ok donc je dois ajouter chaque dll COM à mon projet principal même s'il est déjà inclus dans les projets référencés? – pebg

+0

S'il est réellement inclus en tant que référence, tout ce que vous devez faire est de modifier le statut de publication du fichier en "Inclure". Si ce n'est pas le cas (par exemple, si vous utilisiez des fonctions via pinvoke), vous devrez l'ajouter manuellement. –

+0

En outre, comme une note comme Timothy dit que vous devrez peut-être sélectionner "Afficher tous les fichiers" afin de le voir. –

0

J'ai eu le même problème .... et la seule façon de résoudre ce problème après avoir traversé de nombreuses options, était en ajoutant ces dll aux références.

Cela fonctionne, mais j'espère qu'il y aura une solution plus propre à l'avenir.