12
votes

DotNet Core User-Secrets exécutables Mystérieusement manquant, pourquoi?

installé le plus récent (je pense) .NET CORE, créé un projet Web Core .NET via Visual Studio 2015 et a essayé de commencer à utiliser les secrets d'utilisateur. Le CLI affirme qu'il manquait (après avoir prétendu l'avoir installé ...), comme ci-dessous: xxx pré>

ajoutez également le fichier projet.json par demande: p>

{
  "userSecretsId": "<snip>",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Authentication.Google": "1.0.0-rc2-final"
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },
    "Microsoft.Extensions.SecretManager.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}


4 commentaires

Pourriez-vous montrer votre projet.json?


C'est juste la valeur par défaut de VS, mais sûr.


Je ne peux pas reproduire cela, dotnet utilisateur-secrets -h fonctionne bien pour moi avec votre projet.json.


FWIW, les versions plus récentes de .NET CORE, le package Microsoft.extensions.secretmanager.Tools doit être ajouté à la section "Outils" de Project.json. Sinon, "DotNet User-Secrets" échouera avec l'erreur "Aucune exécutable de la commande correspondante trouvée" Dotnet-User-Secrets "'. (J'ai également dû supprimer le fichier Project.lock.json pour une raison quelconque également pour obtenir le package à ajouter).


3 Réponses :


31
votes

Lorsque vous utilisez l'un des packages d'outils définis dans la section Outils de votre fichier projet.json, vous devez les utiliser à partir du même répertoire contenant le fichier Project.json.

Par exemple, votre fichier projet.json est dans E: \ Projects \ codeserver \ src \ codeserver \ projet.json , mais vous essayez d'exécuter la commande de E: \ Projets \ CodeServer . Si vous modifiez dans le E: \ Projects \ CODESERVER \ SRC \ CODESERVER \ Avant de tenter d'utiliser les outils, les commandes fonctionneront alors.


1 commentaires

C'était bien le problème. Il m'a confondu que dotnet restaure fonctionne du niveau de la solution mais dotnet utilisateurs-secrets échoue complètement. J'espère qu'une future version peut donner une erreur plus descriptive.



12
votes

J'ai trouvé que la console de gestionnaire de paquets est parfois (ou tout le temps pour) est impossible d'utiliser le répertoire correct (même s'il est sélectionné dans la liste déroulante du projet par défaut). Si vous exécutez d'abord la commande 'CD SRC \ YourProjectName', puis par E.G. "DotNet User-Secrets -h" (pour aide) Vous devriez pouvoir utiliser l'outil User-Secrets.

 UTILISATEUR DE DOTNET-SECRETS


2 commentaires

UPVOTE pour la manière de modifier le répertoire de la console de gestionnaire de packages. Merci


Cela a travaillé pour moi dans Visual Studio 2017 - 15.2. Merci!



0
votes

La réponse acceptée à cette question est correcte mais le fichier projet.json n'existe plus. (Visual Studios 2017 et .net Core 2.1) Il a été remplacé par un fichier "votre nom de nom" .csproj. Référence: Il y a Aucun projet.json, global.json ... etc sur la solution de base .NET avec Visual Studio 2017


0 commentaires