Comment le fichier licenses.licx est utilisé

J’ai le fichier licenses.licx inclus dans l’une des propriétés de mes projets. Je ne sais pas comment cela est utilisé par ses DLL. Est-il utilisé par msbuild? Avez-vous une idée de la manière dont cette solution est utilisée?

Puisque vous indiquez que la réponse de StellarEleven n’aide pas, je suppose que vous cherchez quelque chose de plus simple. Ce n’est probablement pas correct à 100%, mais je comprends comment cela fonctionne:

Le fichier licx est simplement une liste des composants “sous licence” utilisés par votre application.

Chaque ligne du fichier est au format suivant:

[Component Name], [Assembly Name] 

Par exemple, l’un de mes projets utilise le composant IP Works NetDial sous licence, donc mon fichier .licx contient la ligne suivante:

 nsoftware.IPWorks.Netdial, nsoftware.IPWorks 

Dans le contexte du fichier de projet (.csproj), le fichier .licx est référencé en tant que EmbeddedResource. Lors du processus de génération , LC.exe vérifie que la machine qui exécute la génération possède la ou les licences appropriées pour le composant en question et génère un fichier .licenses binary qui devient éventuellement une ressource ([AssemblyName] .exe.licenses ) dans l’exécutable final.

est-ce que cela aide?

Fichier de licences.licx

Fichier sous ASP.NET, Département de WTF.

Frustration Lorsque vous développez une application Web avec nos contrôles, un fichier mystérieux appelé licenses.licx apparaît. Non, ce n’est pas un ordre d’utiliser une sucette nommée de façon étrange, mais est un fichier de transition généré (et modifié) par Visual Studio qui participe à la vérification des licences. En mode Création, Visual Studio utilise ce fichier pour noter chaque contrôle sous licence que vous utilisez dans votre conception. Lorsque vous construisez ensuite votre application, Visual Studio lit ce fichier licenses.licx et pour chaque contrôle mentionné, il chargera l’assembly correspondant et exécutera le code de licence dans cet assembly pour voir si l’assembly est correctement sous licence (c’est-à-dire que le produit à laquelle il appartient a été correctement installé sur cette machine). Si tout s’exécute, Visual Studio intègre la clé de licence dans l’exécutable. Si ce n’est pas le cas, vous obtiendrez des messages d’erreur étranges sur la non-licence du contrôle (mon favori est “Impossible de transformer le fichier de licences” licenses.licx “en une ressource binary”. les ancêtres).

Licenses.licx est en fait un fichier de votre solution (si vous ne pouvez pas le voir, cliquez sur Afficher tous les fichiers). Visual Studio utilise un programme appelé lc.exe pour comstackr les licences dans des ressources incorporées dans votre application, et lorsque des problèmes se produisent avec la compilation de la licence, j’ai également vu des messages d’erreur faisant référence à cet exécutable.

Voici un exemple de ligne dans un fichier licenses.licx.

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

La première valeur de cette liste délimitée par des virgules est la classe, la seconde est l’assembly où elle se trouve et les autres valeurs représentent le nom fort du rest de l’assembly. Je suis sûr que vous pouvez déjà voir les problèmes, en particulier lorsque vous mettez à niveau une solution vers les dernières versions des contrôles tiers que vous utilisez. Si vous le souhaitez, vous pouvez modifier ce fichier et supprimer les parties de nom fort sans problème.

Mais ce n’est pas le plus gros problème avec licenses.licx. La chose est que Visual Studio a tendance à toucher ce fichier si vous ouvrez la solution (c’est “toucher” comme pour changer la date du fichier à la date / heure actuelle). Cela nuit à la gestion des licences, surtout si vous ouvrez la solution sur une machine non sous licence et que vous utilisez le contrôle de la source. Tout à coup, votre machine de construction va lancer ces messages “impossible à transformer” et vous vous demandez ce qui a mal tourné. Un autre problème récurrent est celui d’une équipe de développeurs travaillant sur une solution: ils «modifient» inconsciemment ce fichier.

Donc, la réponse semble être de ne pas placer le fichier licenses.licx sous contrôle de source. (Article de la base de connaissances)

Mais cette solution au problème lance un autre drapeau rouge: si l’un des développeurs d’une équipe ajoute un nouveau contrôle nécessitant une licence sur le formulaire, une ligne est ajoutée à son fichier licenses.licx local et peut ne pas se refléter dans le contrôle de code source . Bam, votre machine de construction échoue à la construction et Joe, qui a ajouté le contrôle, doit acheter des beignets pour l’équipe jusqu’à ce que quelqu’un d’autre brise la construction.

Je crains de ne pas avoir une bonne solution à ce dernier problème, car, malheureusement, tout le monde ne résout pas le problème de la licence. Une autre solution consiste à supprimer le fichier licenses.licx, puis à le régénérer en ouvrant la solution (bien que cela soit un peu difficile sur une machine de génération).

En tout cas, j’espère que tout aide d’une certaine façon. Et bash votre ordinateur portable avec un téléphone ne va pas vraiment aider.

Nous utilisons une stratégie d’archivage personnalisée (TFS) qui annule explicitement le contenu de ce fichier s’il est présent dans la liste d’archivage.