Source privée Nuget - possible de définir une condition dans PackageReference?

David784

Je mets en place une source de nuget privée via github. Tout fonctionne bien, en utilisant un nuget.configcomme celui-ci (section des informations d'identification expurgée):

<configuration>
  <packageSources>
    <add key="github" value="https://nuget.pkg.github.com/<my-company>/index.json" />
  </packageSources>
  <packageSourceCredentials>...</packageSourceCredentials>
</configuration>

Remarque, je n'efface pas les autres sources de package: je dois toujours utiliser la source publique du nuget. J'ajoute simplement une source privée supplémentaire en plus.

Comme je l'ai dit, tout fonctionne et je peux très bien ajouter des packages à partir de l'une ou l'autre source. Mais j'ai commencé à m'inquiéter lorsque j'ai vérifié les PackageReferenceentrées dans le csproj. Il n'indique pas la source à utiliser pour le package.

Par exemple, dans ce cas, MyCompany.Commonprovient de ma source privée et Newtonsoft.Jsonde la source publique nuget.

  <ItemGroup>
    <PackageReference Include="MyCompany.Common" Version="1.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
  </ItemGroup>

Mais que se passe-t-il s'il existe un package public du même nom? J'ai essayé ceci, et ça marche effrayant. Donc, en d'autres termes, si quelqu'un devine le nom de mon package privé, la prochaine fois que quelqu'un clone le référentiel et compile, il est fort probable que Visual Studio récupère le package à partir de la mauvaise source.

Est-ce qu'il y a un moyen d'éviter cela? J'ai lu la documentation de Nuget PackageReference et la seule chose qui semble même à distance proche pourrait être Condition:

<PackageReference Include="Newtonsoft.Json" Version="9.0.1" Condition="'$(TargetFramework)' == 'net452'" />

Mais il semble que ce soit plus pour définir des conditions basées sur la configuration de la solution / projet / système, pas de la source du package.

Existe-t-il un conditionnel qui peut spécifier la source du package? Ou y a-t-il autre chose qui peut spécifier la source du nuget pour un paquet particulier?

Je pense que cela pourrait être lié à cet article .

lastr2d2

Il y a un article intéressant ici

https://azure.microsoft.com/en-us/resources/3-ways-to-mitigate-risk-using-private-package-feeds/

J'ai trouvé que le moyen le plus pratique est d'utiliser le mode de verrouillage, avec lequel vous aurez un fichier package.lock.json comme celui-ci

"dependencies": {
    ".NETCoreApp,Version=v5.0": {
      "Newtonsoft.Json": {
        "type": "Direct",
        "requested": "[12.0.1, )",
        "resolved": "12.0.1",
        "contentHash": "pBR3wCgYWZGiaZDYP+HHYnalVnPJlpP1q55qvVb+adrDHmFMDc1NAKio61xTwftK3Pw5h7TZJPJEEVMd6ty8rg=="
      }
    }
  }

Le contentHashdevrait sécuriser le colis.

Le mode de verrouillage peut être activé par

<PropertyGroup>
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Est-il possible de définir l'annotation @Qualifier sur une variable statique privée dans une classe Java?

Est-il possible de déclarer une fonction privée dans une interface?

Est-il possible de définir une condition basée sur System.PullRequest.TargetBranch pour une étape dans un modèle de pipeline ?

Comment définir une classe privée pour former un rappel de validation dans codeigniter

Est-il possible d'étendre une classe privée de package définie dans un jar tiers dans Scala

Ada: Utilisation d'une variable privée dans une précondition d'une fonction publique

Est-il possible de définir une fonction d'échappement "@" personnalisée dans jq ?

Comment définir une propriété privée lors de l'implémentation d'une interface dans Typescript?

Définir une condition SUM basée sur le calcul de la DATE dans Excel

Est-il possible de définir des variables si une condition est satisfaite dans le cadre du karaté?

Définir une source de données personnalisée pour Angular Material Table dans Angular 7

C# Définir la propriété Copier dans le répertoire de sortie pour toujours à partir de Nuget pour les projets PackageReference

est-il possible d'avoir plus d'une condition de support dans l'élément source de la balise d'image?

est-il possible de sous-définir un data.frame basé sur une plage de lignes ET une condition logique dans r?

Est-il possible de créer une variable privée dans Rust?

Impossible de définir un contexte dans une file d'attente privée en tant qu'enfant d'un autre contexte dans la file d'attente principale

Déléguer une méthode privée dans bytebuddy avec @Super - possible?

Est-il possible de prédéfinir une image en ligne dans un fichier HTML d'entrée ?

Comment définir une "bonne" méthode get () pour une variable privée dans une classe?

Comment définir dynamiquement la propriété cochée sur une case à cocher dans Aurelia en fonction de la condition

définir si la valeur de la condition basée sur une requête select dans Hive SQL

Est-il possible de définir mes propres codes de sortie dans une procédure stockée Oracle?

Verilog: Comment définir une plage de valeurs comme une seule condition dans une instruction case?

Initialisation d'une variable dans une fonction privée lors de l'héritage de NSObject

Est-il possible d'insérer dans mysql une valeur calculée avec une condition?

Java : essayer de prendre une entrée au clavier et de l'évaluer dans une condition if/else pour définir une valeur booléenne sur true ou false

Est-il possible de définir une ValueConversion sur un champ privé?

Est-il possible de définir des variables utilisant la condition if / else dans l'histogramme?

Comment définir une méthode basée sur une condition dans laravel

TOP liste

  1. 1

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  2. 2

    Modbus Python Schneider PM5300

  3. 3

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  4. 4

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  5. 5

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  6. 6

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  9. 9

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  10. 10

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  11. 11

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  12. 12

    Microsoft.WebApplication.targets

  13. 13

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  14. 14

    Comment changer la couleur de la police dans R?

  15. 15

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Exporter la table de l'arborescence vers CSV avec mise en forme

  18. 18

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  19. 19

    Ajustement non linéaire avec R

  20. 20

    comment copier du contenu et le mettre dans un pdf nouvellement créé en utilisant iText

  21. 21

    php ajouter et fusionner des données de deux tables

chaudétiquette

Archive