Partage
  • Partager sur Facebook
  • Partager sur Twitter

Clickonce inclure fichier de données et DLL

    4 mai 2021 à 12:38:39

    Bonjour je suis nouveau sur ce site. j'ai développé une application en visual basic ( visual studio express 2013) . je veux distribuer cette application à l'aide d'un installateur.

    Mon application fait références à plusieurs DLL du framework 4. Pour fonctionner elle fait appel à plusieurs fichiers (fichier config, lecture écriture ) ( fichier jpg)( fichier d'aide htm) ces fichiers sont dans des sous répertoire du répertoire d'installation.
    j'ai utilisé INNOSETUP et sans problème j'ai pu déployer les fichiers et répertoire de données et les DLL sur la machine cible
    PROBLÈME: cela ne fonctionne pas , l'application ne trouve pas les DLL . ( les DLL sont à la racine de l'application , sur  mon poste de travail mon appli fait référence aux DLL situés dans C:\ program files\ ( avec copie locale TRUE ))
    QUESTION: Est il nécessaire d'installer le framwork sur la machine cible?
    si oui, l'installation par un utilisateur Lambda est contraignante, C'est pourquoi , j'aimerais utiliser Clickonce ( l'installation du framework est plus claire pour l'utilisateur) ( INNOSETUP ne donne pas cette possibilité)
    Problème : Je n'ai pas trouver la possibilité d'intégrer dans l'installation les fichiers et répertoire de données ( PUBLIER, FICHIER D'APPLICATION ?????? pas de fichier de données) .
    Merci de consacrer de votre temps à examiner mon problème
    • Partager sur Facebook
    • Partager sur Twitter
      4 mai 2021 à 15:10:49

      >PROBLÈME: cela ne fonctionne pas , l'application ne trouve pas les DLL

      Je vois pas trop où est le problème. Si vous ne configurez pas correctement l'environnement d'exécution pour avoir accès à ces DLL (via manifeste ou autres), ça peut tomber en marche mais heureusement que souvent ça part en sucette.

      >les DLL sont à la racine de l'application

      Et ? Ce répertoire n'a pas de pouvoirs magiques. Si la configuration de la machine ne le permet pas, ou si l'installateur ne fait pas les actions pour que ce répertoire soit dans la liste des endroits où le chargeur de l'OS va chercher les Dll, bin il les trouvera pas. C'est l'un des intérêts majeurs des manifestes issus de .NET.

      >sur  mon poste de travail mon appli fait référence aux DLL situés dans C:\ program files\

      Idem, et c'est pas parce que votre bricolage fonctionne sur votre machine de développement que cela fonctionnera correctement partout ailleurs.

      >( avec copie locale TRUE ))

      ???

      >QUESTION: Est il nécessaire d'installer le framwork sur la machine cible?

      Si vous vous en servez et qu'il n'est pas déjà installé, oui et c'est le rôle d'un installateur de de vérifier les pré-requis et de faire les actions nécessaires à ces pré-requis. Je ne connais pas assez InnoSetUp mais les types de projet Installateur de VS ont généralement les options qui permettent soit d'installer préalablement le bon framework ou de demander à l'utilisateur de l'installer avant de continuer.

      >si oui, l'installation par un utilisateur Lambda est contraignante

      C'est à dire ???

      Les modes d'installation possible avec un MSI sont très très nombreuses. Je ne vois pas où sont les limitations dans votre cas.

      >C'est pourquoi , j'aimerais utiliser Clickonce

      Attention, ClickOnce n'est pas un remplacement à une installation via MSI. Les contraintes de déploiement sont beaucoup beaucoup plus importantes en ClickOnce et je ne vois rien dans votre situation qui justifie ce changement de fusil d'épaule.

      >( l'installation du framework est plus claire pour l'utilisateur)

      WTF !!!

      Vous êtes sérieux ???

      >( INNOSETUP ne donne pas cette possibilité)

      Comme vous utilisez encore cette antiquité de VS2013, vous êtes sûr que les options nécessaires n'existe pas dans une version à jour d'InnoSetup ?

      Et des outils de création de MSI, c'est pas ça qui manque.

      Plutôt que de tomber de Charybde en Scylla, analysez correctement le "problème" et corrigez le, plutôt que de tester "toutes les fioles qui traînent sur la table".

      Google ("inno setup install .net framework 4.0"), notre ami, donne :

      https://stackoverflow.com/questions/20752882/how-can-i-install-net-framework-as-a-prerequisite-using-inno-setup

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        4 mai 2021 à 15:21:08

        Je crois que ça se définit dans m'explorateur de fichier du projet: pour chaque fichier à rajouter (image ou autres) tu as dans leur zone de propriétés, une propriété "Copier dans le répertoire de sortie" que tu peux définir à "toujours copier". ClickOnce le rajoutera aux fichiers d'application en principe.

        Pour le framework, oui c'est nécessaire qu'il soit installer.

        l'installeur créé avec INNOSETUP doit pouvoir détecter et installer le framework de façon "transparente" pour l'utilisateur (c'est l'installeur qui va télécharger et installer de lui-même le framework nécessaire). un exemple de code à mettre dans le code de l'installeur de InnoSetup pour le framework 4.7 (à adapter avec la version utilisée dans ton projet) https://engy.us/blog/2015/07/17/installing-net-framework-4-5-automatically-with-inno-setup/ 

        • Partager sur Facebook
        • Partager sur Twitter

        Clickonce inclure fichier de données et DLL

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown