2016-06-08 35 views
12

Zainstalowano najnowszy (jak sądzę) .NET Core, utworzono projekt sieciowy .NET Core przez Visual Studio 2015 i próbowano rozpocząć korzystanie z tajników użytkownika. CLI twierdzi, że brakuje (po twierdząc, że zainstalowany ...), jak poniżej:tajemnicze tajne pliki wykonywalne core dotnet core, dlaczego?

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> 

dodając również plik project.json na życzenie:

{ 
    "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

Czy możesz pokazać swój project.json? – svick

+0

To tylko domyślne z VS, ale z pewnością. – Fizzbuzz97

+0

Nie mogę tego odtworzyć, "dotnet user-secrets -h" działa dobrze dla mnie z twoim project.json. – svick

Odpowiedz

28

Przy zastosowaniu któregokolwiek z pakiety narzędzi zdefiniowane w sekcji 01.pliku project.json, należy użyć ich z tego samego katalogu, który zawiera plik project.json.

Na przykład twój plik project.json znajduje się w E:\Projects\CodeServer\src\CodeServer\project.json, ale próbujesz wykonać polecenie z E:\Projects\CodeServer. Jeśli zmienisz katalog na E:\Projects\CodeServer\src\CodeServer\, zanim spróbujesz użyć narzędzi, polecenia będą działać.

+1

To był rzeczywiście problem. Pomyliłem się, że 'dotnet restore' działa z poziomu rozwiązania, ale' sekrety użytkownika dotneta' nie działają całkowicie. Mam nadzieję, że przyszła wersja może dać bardziej opisowy błąd. – Fizzbuzz97

12

Zauważyłem, że konsola menedżera pakietów jest czasami (lub przez cały czas) nie może użyć właściwego katalogu (nawet jeśli jest wybrany w domyślnym menu projektu). Jeśli najpierw uruchomisz polecenie "cd src \ YourProjectName", a następnie np. "dotnet user-secrets -h" (w celu uzyskania pomocy) powinieneś być w stanie używać narzędzia sekretów użytkownika.

dotnet user-secrets

+4

Rozpatrzenie sposobu zmiany katalogu w konsoli programu Package Manager. Dzięki –

+0

To działało dla mnie w Visual Studio 2017 - 15.2. Dzięki! –