Question

J'ai une solution déployée à l'aide de ClickOnce.

Il consiste en une application, plusieurs assemblages référencés et une base de données SQL Server Compact.

Il existe également un assemblage qui n'est pas référencé par l'application principale, mais simplement chargé au moment de l'exécution. Cet ensemble doit être déployé avec l'application, dans le même répertoire que les fichiers binaires de l'application.

J'ai configuré Visual Studio pour copier le "plug-in". l'assembly à \ bin \ debug (ou \ bin \ release) répertoire du projet d'interface utilisateur après la compilation.

J'ai ensuite ajouté le fichier au projet d'interface utilisateur, non pas comme une référence, mais simplement comme un fichier. Je règle l'action de construction sur "Contenu", cette il apparaît dans les boîtes de dialogue Propriétés / Publier du projet d'interface utilisateur.

Lorsque j'ai publié l'application pour la première fois, cela fonctionnait à merveille. Mais ensuite j'ai mis à jour l'assemblage du plugin, et lui ai même donné un numéro de version différent. et publié à nouveau, que pour trouver l'assemblage n'a pas été mis à jour, mais le premier un jamais téléchargé était toujours utilisé. (Même sur un ordinateur vierge sans installation préalable).

J'ai creusé un peu et découvert que l'assembly (LibComposites.dll) était copié à la fois le répertoire où les applications clickonce stockent leurs fichiers binaires comme répertoire où ils stockent les fichiers de données.

Dans les deux cas, la toute première version publiée.

En résumé, j'ai une application qui référence certains assemblys:

  

Références Control.exe - >   LibLLC.dll, LibDataLayer.dll,   LibLLCExtenders.dll
  charges à   runtime - > LibComposites.dll (qui   fait également référence à LibLLC.dll)

Je dois déployer une nouvelle version de LibComposites.dll dans le même répertoire comme l'application que chacun publie.

Pourquoi la première version jamais publiée de cet assemblage est-elle encore utilisée

Comment puis-je forcer LibComposites.dll à être écrasé par chaque publication?

Était-ce utile?

La solution

D'accord, j'ai eu le même problème. Voici comment je le résous (ce n’est peut-être pas l’idéal, mais ça marche.

1) Si votre dll ou votre fichier se trouve dans la solution, je l’enlèverais et le rajouterais. 2) Accédez à la propriété de votre projet et sélectionnez Publier et fichiers d'application. Vous devez avoir votre fichier là-bas et sélectionner ENCORE " Inclure " (pas l'Auto ...).

Vous pourrez alors publier avec le nouveau. Je ne sais pas pourquoi cela ne fonctionne pas si je ne le fais pas mais chaque publication, je dois suivre ces étapes pour pouvoir obtenir la dernière version ...

Autres conseils

Laissez-moi comprendre: vous utilisez la fonctionnalité de publication de Visual Studio pour créer et déployer le package ClickOnce?

Bonne chance avec ça.

Il serait peut-être préférable de créer vos propres packages ClickOnce à l'aide de Mage .

J'ai commencé par la route Visual Studio et j'ai rapidement découvert que c'était le chemin de la misère. Apprenez à utiliser Mage, puis examinez quelques-unes des options de MSBuild pour "automatiser" et ceci.

J'ai eu le même problème. Le problème était que j'avais les dll dans le répertoire racine de l'application et qu'elles étaient "dans". dans le projet.

La solution est simple, il suffit d’exclure les fichiers dll du projet et le problème disparaît.

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