Comment les licences.le fichier licx est utilisé

j'ai licences.fichier licx qui est inclus dans l'une des propriétés de mon projet. Je ne suis pas sûr de savoir comment ce est utilisé par ses dll. Est-il utilisé par msbuild? Avez-vous une idée de comment il est utilisé lorsque la solution est de construire?

41
demandé sur CharithJ 2011-04-12 04:10:35

3 réponses

Puisque vous indiquez que StellarEleven réponse de ça n'aide pas, je suppose que tu cherches quelque chose de plus simple. Ce n'est probablement pas 100% correct, mais c'est ma compréhension de la façon dont cela fonctionne:

le fichier licx est simplement une liste des composants "autorisés" utilisés par votre application.

Chaque ligne du fichier est de la forme suivante:

[Component Name], [Assembly Name]

par exemple, un de mes projets utilise le composant IP Works NetDial sous licence. .licx fichier contient la ligne suivante:

nsoftware.IPWorks.Netdial, nsoftware.IPWorks

Dans le contexte du projet, (.csproj), le fichier de la .le fichier licx est référencé comme une ressource intégrée. Pendant le processus de génération, LC.exe vérifie que la machine effectuant le construire à la licence appropriée(s) pour le composant en question, et génère un fichier binaire .fichier de licences qui finit par être intégré en tant que ressource ([AssemblyName].EXE.les licences) dans l'exécutable final.

cette de l'aide?

27
répondu Richard J Foster 2017-05-23 11:54:51

Licences.fichier licx malheurs

Classez ceci sous ASP.NET, Département de WTF.

Frustration Lorsque vous développez une application web avec notre les contrôles, un mystérieux fichier appelé licences.licx s'affiche. Non, il n'est pas un ordre d'utiliser un bizarrement nommé sucette, mais c'est une transition fichier généré (et modifié) par Visual Studio qui participe à la licence vérification. En mode design, Visual Studio utilise ce fichier pour faire une note de chaque contrôle autorisé que vous utilisez dans votre conception. Quand vous construisez alors votre application, Visual Studio lire ces licences.fichier licx et pour chaque commande mentionnée ici, chargera l'ensemble concerné et exécutera le code de licence dans cet assemblage pour voir si l'assemblage est correctement sous licence (c'est que le produit auquel il appartient a été correctement installé sur cette machine). Si tout vérifie, Visual Studio intègre la clé de licence dans l'exécutable. Si ce n'est pas, vous aurez recevoir des messages d'erreur bizarres sur le contrôle non autorisé (mon préféré est "ne Pouvait pas transformer fichier de licences licences.licx' dans une ressource binaire."à laquelle j'invoque habituellement le coloré la langue de mes ancêtres).

Licences.licx est en fait un fichier dans votre solution (si vous ne voyez pas là, cliquez sur Afficher Tous les Fichiers). Visual Studio utilise un programme appelé lc.exe compiler les licences en ressources incorporées dans votre application, et quand les choses vont mal avec la licence compilant j'ai voir les messages d'erreur qui font référence à cet exécutable.

voici un exemple de ligne dans une licence.fichier licx.

DevExpress.XtraCharts.Web.WebChartControl, DevExpress.XtraCharts.v8.2.Web, Version=8.2.4.0, Culture = neutre, PublicKeyToken=9b171c9fd64da1d1

la première valeur dans cette liste délimitée par une virgule est la classe, la seconde c'est l'assemblée où il se trouve, et les autres valeurs sont le reste de le l'assemblée de nom fort. Je suis sûr que vous pouvez déjà voir les problèmes, surtout quand vous mettez à jour une solution aux dernières versions de la les contrôles de tiers que vous utilisez. Si vous voulez, vous pouvez éditer ce fichier et supprimer les parties de nom fort sans problème.

Mais ce n'est pas le plus gros problème avec les licences.licx. La chose est Visual Studio a une propension à toucher ce fichier si vous ouvrez le solution (c'est le "toucher", comme dans la modification du fichier date de la actuel date/heure). Cela fait des ravages avec les licences, surtout si vous se produire ouvrir la solution sur une machine non autorisée et vous utilisez contrôle à la source. Tout à coup votre machine de construction va jeter ces les messages "ne peut pas transformer" et vous vous demandez ce qui a mal tourné. Un autre problème courant est lorsque vous avez une équipe de développeurs de travailler une solution: ils sont tous inconsciemment "modification" de ce fichier.

Donc, la réponse semble être de ne pas mettre les licences.fichier licx selon contrôle à la source. (l'article)

mais cette solution au problème lance un autre signal d'alarme: si l'un des les développeurs d'une équipe ajoute un nouveau contrôle qui a besoin d'une licence pour la forme, une ligne est ajoutée à ses licences locales.fichier licx et il peut ne pas se refléter dans le contrôle à la source. Bam, votre machine de construction construire et Joe, qui a ajouté le contrôle, doit acheter des beignets pour le l'équipe jusqu'à ce que quelqu'un brise le construire.

je suis peur que je n'ai pas de bonne solution à ce dernier problème, parce que malheureusement, le "ne pas mettre de licences.licx dans le contrôle à la source " semble pour être comme tout le monde est de résoudre le problème de licence. Un autre la solution est de supprimer les licences.fichier licx tout à fait et puis obtenir Visual Studio pour le régénérer en ouvrant la solution (bien que ce c'est un peu difficile sur une machine de compilation).

en tout cas, espérons que tout aide d'une façon ou d'une autre. Et frapper votre ordinateur portable avec un téléphone n'est pas vraiment va aider.

15
répondu CharithJ 2016-03-02 11:33:23

nous utilisons une politique d'enregistrement personnalisée (TFS) qui annule explicitement le contenu de celle-ci lorsqu'elle est présente dans la liste d'enregistrement.

0
répondu Miki 2018-06-06 07:02:46