IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Utiliser une dll stockée sur le réseau


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 36
    Points
    36
    Par défaut Utiliser une dll stockée sur le réseau
    Bonjour,

    Je réalise un projet en c# dans lequel je dois référencer une dll stockée sur un serveur.
    Est il possible de faire pointer mon programme sur le dossier ou est stockée cette dll et non le répertoire de l'application?
    Cette dll est compilée régulièrement par une autre équipe, en pointant directement dans le répertoire de la dll, cela m'éviterait de compiler mon programme chaque fois que la dll est modifiée.
    J'utilise Visual studio express 2013.

  2. #2
    Membre actif
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 127
    Points : 288
    Points
    288
    Par défaut
    Tu pourrais imaginer en faire un package nuget, por les mises à jour ce serait pratique :
    https://docs.nuget.org/create/creati...hing-a-package

  3. #3
    Expert confirmé Avatar de ed73170
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2009
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2009
    Messages : 765
    Points : 5 522
    Points
    5 522
    Par défaut
    Bonjour,

    Tu peux essayer la chose suivante :

    - Tu supprimes la dll de tes répertoires locaux.
    - Tu références la dll qui est sur le serveur.
    - Dans les propriétés de la référence tu mets 'Copie Locale' à false.
    - Tu mets le chemin du serveur dans la variable d'environnement Windows 'path' afin que la dll soit trouvée lors de l'exécution.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    @chadoum-> merci pour ta proposition mais apparemment l’équipe gérant la dll ne veut pas générer de package nuget.

    @ed73170 -> j'ai fait ce que tu as proposé mais lors de l’exécution, mon programme plante car il ne trouve pas la dll. il essaie plusieurs chemins mais pas celui que j'ai référencé.

  5. #5
    Expert confirmé Avatar de ed73170
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2009
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2009
    Messages : 765
    Points : 5 522
    Points
    5 522
    Par défaut
    Citation Envoyé par Persons Voir le message
    @ed73170 -> j'ai fait ce que tu as proposé mais lors de l’exécution, mon programme plante car il ne trouve pas la dll. il essaie plusieurs chemins mais pas celui que j'ai référencé.
    S'il ne trouve pas la dll c'est que le chemin du serveur n'est pas dans le path. Est-ce que tu as bien modifié la variable d'environnement path ? (Poste de travail, propriétés, paramètres systèmes avancés, variables d'environnement, path).

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Salut

    tu aurais aussi l'option de charger dynamiquement ta dll.

    Genre, au démarrage de ton programme, tu vas chercher la DLL sur le chemin qui va bien (ou en FTP, etc..) et tu la copies en locale...

    Par contre, ca veut dire qu'il te faut instancier les classes à utiliser via Activator.CreateInstance();

    Mais bon, ça semble une solution interessante

    Sinon, tu as aussi une option encore plus simple... tu te fais un petit launcher qui récupére la DLL sur le serveur, la copie là où il faut et lance ensuite ton programme.

    Je pense que c'est LA solution la plus rapide à mettre en oeuvre... et vraiment simple à faire... et en plus, pas besoin de changer quoi que ce soit dans ton programme.
    Attention toutefois que ton programme qui s'appuie sur la DLL ne rale pas parce que la version ne serait pas la même que celle référencée dans le programme.

    N'ayant jamais eu à faire ce genre de blague, je ne saurais être catégorique !!!
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Pour ne pas avoir d'erreur de version sur les dll il faut compiler en release il me semble.

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Après tu peut aussi tenter d'implémenter AssemblyResolver.
    https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx
    https://www.chilkatsoft.com/p/p_502.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
     
        static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            if (/*some condition*/)
                return Assembly.LoadFrom("DifferentDllFolder\\differentVersion.dll");
            else
                return Assembly.LoadFrom("");
        }

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/05/2015, 17h03
  2. Boucle sur UNION en utilisant une procédure stockée
    Par laloune dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/05/2011, 10h32
  3. Réponses: 1
    Dernier message: 06/03/2009, 10h02
  4. Utilisation d'une dll perso sur SAS
    Par rlongin dans le forum SAS Base
    Réponses: 2
    Dernier message: 12/08/2008, 13h41
  5. [HTML] Utilisation d'une image stockée sur un serveur dans un fichier HTML
    Par Rosa2008 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/07/2008, 08h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo