web-dev-qa-db-fra.com

Comment ajouter une référence au projet dans l'application asp.net 5

Selon mes connaissances, Visual Studio 2015 a quelques mises à jour et nous ne pouvons plus ajouter de DLL à l'application asp.net 5, si nous devons ajouter alors nous devons créer un package NuGet, puis l'installer.

Maintenant mes questions sont: -

1) Si j'ai un projet avec deux bibliothèques de classes, comment puis-je ajouter la référence (DLL) de cette bibliothèque de classes dans mon application asp.net 5?

2) Si une bibliothèque de classes est également en mode de développement, comment mettre à jour cette DLL dans asp.net 5 si cette DLL est installée via NuGet, car chaque fois pour la publication sur NuGet et obtenir plus tard prendre plus de temps.

3) Supposons que si nous devons ajouter toutes les DLL utilisant NuGet, qu’en est-il des DLL privées?

4) Existe-t-il un moyen sans gestionnaire de paquets NuGet de gérer cela?

14
Vinit Patel

Réponse rapide - vous n'avez pas besoin des packages NuGet pour cela et oui, il est possible de se référer à vos propres bibliothèques.

Deux manières:

  1. En l'ajoutant à l'objet "dependecies" de niveau racine dans votre projet.json. Sachez que cette action ajoutera une référence à chaque framework cible répertorié dans la section "frameworks". Par conséquent, si vous ajoutez une référence à la bibliothèque de classes de type ancien, cela ne fonctionnera pas avec le nouveau DNXCore 5.0.

    {
       "webroot": "wwwroot",
       "version": "1.0.0-*",
    
       "dependencies": {
           "Library": "1.0.0-*" 
    
  2. En l'ajoutant pour une version spécifique du framework. Ce qui est plus flexible, car vous pouvez utiliser des bibliothèques de type ancien pour DNX451 et de nouvelles bibliothèques de classes vNext pour DNXCore 5.0.

    "frameworks": {
        "dnx451": {
            "dependencies": {
                "ClassicLib": "1.0.0-*",
                "vNextLib": "1.0.0-*",
            }
        },
        "dnxcore50" : {
            "dependencies": {
                "vNextLib": "1.0.0-*"
            }
        }
     } ....
    

Tous les échantillons que j'ai vérifiés sur Visual Studio 2015 RC.

6
Andriy Horen

Vous pouvez ajouter l'ancienne bibliothèque de classes Foo.csproj à Bar.xproj comme référence mais pas directement, voir les instructions ci-dessous. Cela peut être fait sans télécharger des paquets dans Beta8.

  1. Allez aussi dans le dossier Foo.csproj, tapez: dnv wrap Foo.csproj.
  2. Vous devriez maintenant avoir quelques fichiers générés, pour moi c’était Foo/wrap/Foo/project.json. Accédez à votre solution dans Visual Studio, Add -> Existing project -> project.json.
  3. Vous avez maintenant quelques fichiers supplémentaires, y compris Foo.xproj qui est disponible dans la solution Visual Studio, mais cela ne se construit pas.
  4. Ouvrez cmd dans le répertoire Foo et exécutez dnu restore.
  5. Après 4) termine sans erreur et Foo.xproj peut être construit, vous pouvez maintenant aller à Bar.xproj et ajouter Foo.xproj comme référence.
  6. Ouvrez cmd dans le répertoire Bar et exécutez dnu restore.
  7. Vous pouvez maintenant construire Bar.xproj

J'espère vraiment que cela sera plus facile dans la version finale.

3
watbywbarif

J'ai modifié ma réponse précédente pour vous indiquer la réponse suivante sur StackOverflow:

Ajout d'une référence à un projet de bibliothèque de classes dans ASP.NET 5 (Core)

Je peux vérifier que la réponse fonctionne si votre projet frontal, celui à partir duquel vous devez référencer d'autres bibliothèques de classes, est ASP.NET 5 MVC 6 beta6.

2
StackOverflowUser

Vous devez créer un fichier project.json pour votre assemblage. Vous pouvez utiliser la commande suivante: 

 kpm wrap "c:\path\to.csproj"

Cela créera un dossier "wrap" dans le dossier racine de la solution. Ensuite, vous devez pouvoir ajouter une référence à votre projet. Si cela ne fonctionne pas, essayez de déplacer le fichier project.json dans le répertoire du projet.

Pour utiliser kpm (K Package Manager), vous devez avoir installé les outils "k" et "dnx" et disposer d'une version active.

Si la commande kpm ne fonctionne pas, suivez ceci:

1) Ouvrez PowerShell en tant qu’administrateur et tapez cette commande pour permettre à powershel de télécharger et d’installer le package:

Set-ExecutionPolicy RemoteSigned

2) Ouvrez une cmd avec droit d’administrateur et entrez la commande suivante pour installer le paquet:

 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"

3) Dans cmd, vous pouvez mettre à jour et définir les variables d’environnement à l’aide de la commande foloing:

 dnvm upgrade

puis réessayez la commande "kpm wrap"

Après cela, vous pourrez ajouter une référence à votre projet. Mais je pense que cela ne fonctionnera pas avec le noyau. si vous avez un problème, essayez d’utiliser une autre version de dnvm (comme beta2 ou "2 1.0.0-beta5") avec la commande dnvm install comme ceci:

dnvm install 1.0.0-beta4-11566
1
Benoit