Actuellement, je développe une application C # .NET dans laquelle j'utilise un contrôle personnalisé que j'ai développé il y a quelque temps. J'ai besoin que la DLL soit expédiée dans la nouvelle application - mais de manière compréhensible, je ne veux pas que le fichier DLL soit utilisé pour les applications étrangères. p>
C'est pourquoi j'ai besoin de la DLL personnalisée pour être compilée dans la nouvelle application. Actuellement, la DLL est copiée dans le répertoire d'applications. P>
Des idées? Devrait être trivial imho. P>
merci et respects, Daniel P>
4 Réponses :
Je pense que vous devez rechercher une licence de votre contrôle: http://msdn.microsoft.com/en-us/library/fe8b1eh9.aspx p>
Merci pour toutes ces réponses - je vais essayer celui-ci et revenir si nécessaire.
Si vous pouvez changer la DLL avec le contrôle exclusif, vous pouvez ... p>
Voir ce page MSDN pour les détails sur la façon de faire cela. P>
Il y a un certain nombre de hacks différents que vous pouvez faire pour que cela soit plus difficile à utiliser. Tous peuvent être contournés, mais telle est la vie. P>
Vous pouvez regarder cette réponse ici pour refuser un assemblage inconnu pour référencer votre assemblée: Assemblages C # sécurisés d'appelants non autorisés P>
Vous devriez obscorer votre assemblée si vous êtes vraiment nerveux à ce sujet. Cela le fera plus difficile em> à décompiler. Quelque chose comme Babel fonctionne bien: http://babelobfuscat.blogspot.com/ p>
Vous pouvez également utiliser ILMERGE pour stocker l'assemblage dans un autre assemblage. Cependant, cette assemblée sera extraite et exposée au moment de l'exécution. Vous pouvez faire quelque chose dans ces lignes pour extraire une ressource binaire d'un assemblage et créer un assemblage temporaire qui est utilisé au moment de l'exécution. Si quelqu'un est vraiment motivé, ils peuvent trouver l'assemblage temporaire aussi ... P>
La vraie question est la distance que vous voulez aller!? À un moment donné, cela ne vaudra pas la peine. C'est là que vous vous arrêtez. P>
Hum, je ne veux pas aller très loin - tout ce que je veux, c'est que la DLL n'est pas visible dans le répertoire d'applications à première vue ou la protège contre l'incorporation facilement. Je sais: Tout fait par les humains peut être piraté ou détruit par des humains. Si Microsoft, Apple et d'autres grandes entreprises ne sont pas en mesure d'obtenir une protection réelle contre le piratage de leurs logiciels - Comment puis-je penser à être capable ... ;-)
Si vous mettez votre code dans l'ordinateur de quelqu'un d'autre, ils peuvent l'exécuter. Tout ce que vous faites pour empêcher que cela soit au mieux une bosse de vitesse.