7
votes

Comment relier des bibliothèques de liaison statique pour une bibliothèque de classe C #?

Je crée une classe LLibrary dans C # à l'aide de Microsoft fourni dll.

Maintenant, je veux ajouter statiquement ces bibliothèques Microsoft fournies à ma DLL.Comment puis-je faire cela. J'ai simplement ajouté une référence à ces DLL Microsoft fournis et crée ma DLL? Est-ce bien ou pas?

Si Microsoft fourni DLL n'est pas disponible sur une autre machine, ma DLL peut échouer, je dois ajouter les bibliothèques statiquement ??

Comment puis-je faire cela ??


1 commentaires

Qu'essayez-vous d'accomplir cela?


4 Réponses :


7
votes

Il n'y a pas de liens de manière statique à une autre assemblée dans .NET. Il existe des produits tiers tels que .NET Linker qui fusionnent des assemblages en un mais ils sont non pris en charge. < / p>

Si vous avez la licence de redistribution pour cette bibliothèque, vous pouvez expédier une copie avec votre assemblée. Dans Visual Studio, vous pouvez y arriver en définissant "Copier local" sur "True" dans la fenêtre Propriétés pour cette référence d'assemblage.


0 commentaires

3
votes

Si la DLL n'est pas disponible au moment de l'exécution; Oui, ça échouera. Cependant:

  • De nombreuses DLL Microsoft sont préinstallées avec .NET (CAVEZER: "Profil client")
  • Beaucoup de DLL Microsoft sont redistribuables; Vous pouvez donc les inclure avec votre colis

    Il n'y a pas de lieur fourni dans le cadre de base, bien que Ilmmerge peut être utile.


0 commentaires

0
votes

Ce n'est pas très clair ce que vous voulez réaliser, mais il semble que votre classe LIB fonctionne sur une autre machine ou non. La chose est que le .NET Framework est une redistribuabilité gratuite qui doit être installée s'il n'est pas présent sur la machine cible. Avec la structure .NET déjà installée sur une machine, il ne devrait y avoir aucun problème comme tel.

La liaison statique en tant que telle n'a pas de sens à d'autres autres que l'ajout d'une référence d'assemblage à votre projet. J'espère que cela aide


1 commentaires

Lorsque vous liez statiquement une DLL en C ++, il combine l'EXE et la DLL dans un fichier qui facilite la distribution et la capacité de fonctionner dans des environnements limités.



4
votes

Voir la discussion ici et lire les commentaires - Jeff fournit un moyen.

http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt--c-clr-via-c-Chird-édition. ASPX


0 commentaires