2016-06-08 11 views
12

Installato il più recente (credo). NET Core, creato un progetto web .NET Core tramite Visual Studio 2015, e ho cercato di iniziare a utilizzare i segreti dell'utente. La CLI afferma che manca (dopo sostenendo di aver installato ...), come di seguito:l'eseguibile dei segreti utente del core dotnet misteriosamente mancante, perché?

E:\Projects\CodeServer>dotnet --version 
1.0.0-preview1-002702 

E:\Projects\CodeServer>dotnet restore 
<snip> 
log : Restoring packages for tool 'Microsoft.Extensions.SecretManager.Tools' in E:\Projects\CodeServer\src\CodeServer\project.json... 
<snip> 
log : Restore completed in 2345ms. 

NuGet Config files used: 
    C:\Users\Work User\AppData\Roaming\NuGet\NuGet.Config 
    C:\ProgramData\nuget\Config\Microsoft.VisualStudio.Offline.config 

Feeds used: 
    https://api.nuget.org/v3/index.json 
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 

E:\Projects\CodeServer>dotnet user-secrets -h 
No executable found matching command "dotnet-user-secrets" 

E:\Projects\CodeServer> 

aggiungendo anche il file project.json per richiesta:

{ 
    "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%" ] 
    } 
} 
+0

Potresti mostrare il tuo progetto.json? – svick

+0

È solo l'impostazione predefinita da VS, ma sicura. – Fizzbuzz97

+0

Non riesco a riprodurre questo, 'dotnet user-secrets -h' funziona bene per me con il tuo project.json. – svick

risposta

28

Quando si utilizza uno qualsiasi dei pacchetti di strumenti definiti nella sezione tools del file project.json, è necessario utilizzarli dalla stessa directory che contiene il file project.json.

Ad esempio, il file project.json è in E:\Projects\CodeServer\src\CodeServer\project.json, ma si sta tentando di eseguire il comando da E:\Projects\CodeServer. Se si passa alla directory E:\Projects\CodeServer\src\CodeServer\ prima di tentare di utilizzare gli strumenti, i comandi funzioneranno.

+1

Questo era davvero il problema. Mi ha confuso che 'dotnet restore' funziona a livello di soluzione ma' dotnet user-secrets' non funziona completamente. Spero che una versione futura possa dare un errore più descrittivo. – Fizzbuzz97

12

Ho trovato che la console del gestore pacchetti è talvolta (o sempre per) non è in grado di utilizzare la directory corretta (anche se è selezionata nel menu a discesa del progetto predefinito). Se prima esegui il comando 'cd src \ YourProjectName' e quindi ad es. 'dotnet user-secrets -h' (per aiuto) dovresti essere in grado di usare lo strumento user-secrets.

dotnet user-secrets

+4

Upvote per il modo in cui cambiare la directory nella Console di Gestione pacchetti. Grazie –

+0

Questo ha funzionato per me in Visual Studio 2017 - 15.2. Grazie! –

Problemi correlati