2017-03-29 1 views
0

Je publie une application ClickOnce qui a quelques dépendances sous la forme de DLL. Lorsque je publie la version initiale 0.0.1 toutes les dépendances sont copiées dans le dossier de déploiement comme je l'attendrais.Conserver une seule copie de chaque dépendance ClickOnce?

Si je fais une mise à jour et publie la version 0.0.2, toutes les mêmes dépendances, qui sont inchangées et ont le même hachage de fichier, sont copiées dans un second sous-dossier dans le dossier de déploiement.

La structure du dossier ressemble à ceci:

deployment/ 
    MyApplication.application 
    setup.exe 

    Application Files/ 
     MyApplication_1_0_0_1/ 
      Dll_A.dll - Hash: 0x111111111111111 
      Dll_B.dll - Hash: 0x222222222222222 

     MyApplication_1_0_0_2/ 
      Dll_A.dll - Hash: 0x111111111111111 
      Dll_B.dll - Hash: 0x222222222222222 

Est-il possible d'avoir une seule copie de Dll_A.dll/Dll_B.dll quand ils sont le même fichier et ne disposent que d'une nouvelle copie en cas de changement ?

Je fais référence à la taille du répertoire à la fin du développeur. Pas la taille du téléchargement et le cache que les clients ont comme je comprends déjà ClickOnce prend soin de minimiser cela.

Répondre

1

Mon problème provient d'une mauvaise compréhension du fonctionnement du répertoire Application Files.

Oui, un nouveau dossier contenant les mêmes DLL est créé à chaque fois, mais pour que les mises à niveau fonctionnent, vous n'avez pas besoin de conserver tous les dossiers. Vous pouvez les effacer tous sauf pour la version la plus récente et ne pas avoir d'effets négatifs.

Même si quelqu'un est entre les versions/mises à niveau ratées, il tirera simplement la dernière version lors de la mise à jour de son programme. Ils n'ont pas besoin des versions intermédiaires qu'ils ont manqué entre.